Log message:
Update to 1.71.0
Changelog:
New Libraries
Variant2: A never-valueless, strong guarantee implementation of \
std::variant, from Peter Dimov.
Updated Libraries
Align:
Support for any integral type in the integral versions of align_up and \
align_down.
Revised the implementation of aligned_allocator to no longer require a \
specialization for void.
Define propagate_on_container_move_assignment and is_always_equal in \
aligned_allocator.
Asio:
Improved performance slightly by eliminating a redundant move \
construction when completed handlers are dispatched.
Eliminated a compiler warning by annotating a case fall-through in the \
free function connect() implementation.
Fixed the is_*_buffer_sequence detection traits for user-defined \
sequence types.
Fixed some Windows-specific warnings about an incompatible pointer cast \
when obtaining the CancelIoEx entry point.
Changed to automatically set the defaults when opening a serial port on \
Windows.
Changed the serial port get_option() member function to be const.
Fixed a name hiding issue with the WinRT stream-oriented socket \
backend's shutdown function.
Applied a minor fix to the documentation for is_dynamic_buffer.
Added some support for Haiku OS.
Added wolfSSL compatability.
Changed to require C++17 or later for coroutines TS support with clang.
Fixed a doxygen generation problem in the tutorial.
Ensured example programs are correctly incorporated into the documentation.
Any:
Static initialization of the default constructed boost::any is now possible.
Fixed performance regression in assignment on a compilers without \
move-semantics.
Maintenance work.
Beast:
This version consists mostly of bug fixes and performance improvements.
Substantial work included for the split compilation mode, to reduce \
compile time when defining BOOST_BEAST_SEPARATE_COMPILATION.
We'd love to know how you or your company use Beast, consider adding an \
item to the Companies and Individuals Using Beast list.
See the full Release Notes for a complete list of changes.
Circular Buffer:
Correct doxygen generated reference to no longer show internal members. \
(Glen Fernandes)
Eliminate ubsan warning on add and sub. (Glen Fernandes)
Fix incorrect check in is_uninitialized. (Niklas Fejes)
Container:
Fixed bugs:
GitHub #47: "added alignment specification for small_vector".
GitHub #88: "Implement C++17 MoveAssignable requirements for \
self-move assignments".
GitHub #107: "Alignment ignored in resource_adaptor".
GitHub #109: "Get rid of integer overflow in copy_move_algo.hpp \
(-fsanitize=integer)".
GitHub #110: "Avoid gcc 9 deprecated copy warnings in \
new_allocator.hpp".
GitHub #112: "vector::resize() compilation error with \
msvc-10..12: data is not a member of boost::detail::aligned_storage".
GitHub #114: "Fix small_vector noexcept specification".
GitHub #116: "MSVC + boost 1.70 compilation error when \
windows.h is already included (detail/thread_mutex.hpp)".
GitHub #117: "flat_map/map::insert_or_assign with hint has \
wrong return types".
GitHub #118: "Non-unique inplace_set_difference used in in \
flat_tree_merge_unique and iterator invalidation in insert_unique".
GitHub #122: "Fix has_trivial_destructor_after_move".
GitHub #123: "With heterogeneous lookup, equal_range can result \
in a range with length greater than 1".
deque can now have options, using deque_options. The block size/bytes \
can be be specified.
static_vector can now have options, using static_vector_options. \
Alignment and throwing behaviour can be be specified.
small_vector can now have options, using small_vector_options. Alignment \
and growth factor can be be specified.
Context:
Add support for RISC-V LP64D
#72: Fix ABI violation on ppc64 ELFv2
#99: cleanup of stack if creating ucontext fails
Conversion:
Maintenance work.
Core:
Added functions alloc_construct, alloc_construct_n, alloc_destroy, and \
alloc_destroy_n in <boost/core/alloc_construct.hpp> for allocator aware \
and exception safe construction and destruction of objects and arrays. (Glen \
Fernandes)
Added constexpr functions first_scalar in \
<boost/core/first_scalar.hpp> for obtaining a pointer to the first scalar \
element of an array. Given a pointer of type T* they return a pointer of type \
remove_all_extents_t<T>*. (Glen Fernandes)
Added class template noinit_adaptor in \
<boost/core/noinit_adaptor.hpp> which is an allocator adaptor that \
converts any allocator into one whose construct(ptr) performs default \
initialization via placement new, and whose destroy(ptr) invokes the value_type \
destructor directly. (Glen Fernandes)
Added class template default_allocator in \
<boost/core/default_allocator.hpp>, which can serve as a minimal default \
allocator that has interface similar to C++20 std::allocator, supports \
configurations with disabled exceptions and does not have std as an associated \
namespace. The allocator uses operator new and operator delete for allocation. \
(Glen Fernandes)
In <boost/core/uncaught_exceptions.hpp> header, added workarounds \
for better compatibility with QNX SDP 7.0 when libc++/libc++abi libraries are \
used. (Andrey Semashev, #59)
The <boost/detail/sp_typeinfo.hpp> header is now marked as \
deprecated and will be removed in a future release. \
<boost/core/typeinfo.hpp> should be used instead. (Peter Dimov)
Dynamic Bitset:
Enabled hardware-assisted popcount on MSVC (#38).
Added support for boost::hash and std::hash (#45).
Support copy-initialization with default constructor (#48).
Endian:
Clarified requirements on the value type template parameter
Added support for float and double
Added endian_load, endian_store
Updated endian_reverse to correctly support all non-bool integral types
Moved deprecated names to the deprecated header endian.hpp
Fiber:
documentation for shared_work updated
Filesystem:
Fixed incorrect error_code returned from directory iterator increment \
when readdir_r is used.
For path, fixed rvalue-aware operator/ return type to return an rvalue \
instead of rvalue reference. This fixes leaving a dangling reference in the \
user's code if the result of operator/ is bound to a const reference. (#110)
Fixes for better compatibility with Windows CE. (#24)
Added minimal support for CMake. (#106)
Flyweight:
Maintenance work.
Histogram:
New features:
Support for thread-safe storages and new thread-safe accumulators
Support for compiling without exceptions/RTTI (increases performance \
by 10-20 %) (with Glen Fernandes)
Performance improvements for 1D and 2D histograms
boost::histogram::indexed now returns forward iterator range instead \
of input iterator range
boost::histogram::indexed_range::accessor is now non-copyable and \
acts like reference to cell value, making more algorithms from the C++ stdlib \
work
boost::histogram::algorithm::reduce with new slice option and option \
fusion
boost::histogram::algorithm::project accepts runtime indices for \
static histograms
Bug Fixes:
boost::histogram::algorithm::reduce also works on histograms that \
have some axis types without reduction support
boost::histogram::axis::traits::update now works correctly for \
boost::histogram::axis::variant
Other:
100 % test coverage
Reduced internal Boost dependencies
Improved documentation and examples
Guaranteed no-throw moves for all builtin axis types
Compile cleanly at higher warning levels
See changelog for more details.
IoStreams:
Fixed processing of multi-stream files (#87).
Added support for multi-threaded LZMA (#95).
Interprocess:
GitHub #85 ("warning: Implicit conversion loses integer \
precision").
GitHub #86 ("warning: Possible misuse of comma operator").
Intrusive:
GitHub #42: Documentation does not describe treap priority_of_value changes
GitHub #43: Fix tests with BOOST_INTRUSIVE_VARIADIC_TEMPLATES enabled
GitHub #45: Disable variadic templates for MSVC-12 to avoid ICEs
LexicalCast:
Added tests for boost::filesystem::path conversions #25.
Maintenance work, including #28.
Log:
New features:
Improved support for C++17 std::string_view in \
basic_formatting_ostream. The string view can now participate in character code \
conversion on output.
Added auto_newline formatter and stream manipulator. It can be used \
to ensure that formatted output always ends with a newline while avoiding \
duplicate newlines.
In the output stream, text file and text multi-file sink backends \
added support for configuring behavior with regard to appending a trailing \
newline to every formatted log record. Use auto_newline_mode named parameter of \
the backend constructor or call the set_auto_newline_mode method on the sink \
backend.
Note: The default behavior with regard to trailing newlines added by \
sink backends has changed slightly compared to the previous Boost.Log releases. \
The backends will now only add a trailing newline if there isn't one in the \
formatted log message string already. In previous releases a newline was added \
unconditionally.
Added support for passing arbitrary function objects in the filter \
and format named parameters to sink constructors and convenience functions for \
initializing sinks. For example, it is now possible to specify C++11 lambda \
functions directly in these parameters. (#63)
In the default filter and formatter factories used in filter and \
formatter parsers, added support for severity level attribute values of type \
boost::log::trivial::severity_level. For filters, the support is limited to \
attributes with "Severity" name.
Bug fixes:
Fixed incorrect parsing of components of the rotated file names \
while scanning for files in the text file sink backend. If the file name pattern \
ended with a placeholder (for example, a file counter), the scan_for_files \
method would not find files matching that pattern in the target storage, leaving \
them unmanaged. In particular, such files would not be deleted to free target \
storage. (#78)
Updated basic_formatting_ostream and basic_record_ostream to make it \
possible to overload stream output operators for pointers to user-defined types. \
User-defined operator<< overloads taking std::basic_ostream and a pointer \
argument should now be picked up by the compiler when the pointer is being \
written to one of Boost.Log streams. (#84)
See changelog for more details.
Math:
New features:
Catmull-Rom interpolator now works in C++11
Cardinal quadratic B-spline interpolation
Domain of elliptic integrals extended
sin_pi and cos_pi performance improvements
Forward-mode automatic differentiation
Vector valued barycentric rational interpolation
Ooura's method for evaluation of Fourier integrals
Bug fixes:
Multiple compatibility issues with Multiprecision fixed
Lambert-W fixed on a rare architecture
Metaparse:
New features:
In C++11 variadic template support for the following: sequence, \
one_of_c, one_of, repeated_one_of, repeated_one_of1, one_char_except_c, \
one_char_except.
Bug fixes:
BOOST_METAPARSE_STRING does not use out of range character values as \
template arguments.
any_of_c<> does not create empty array in C++14.
Move:
Git Issue #26: "Invalid iterator increment/decrement in the last \
iteration of adaptive_sort_combine_blocks".
Multi Array:
Simplify allocator support by using new alloc_construct_n and \
alloc_destroy_n facilities from Core. (Glen Fernandes)
Multi-index Containers:
Added variants of const_mem_fun and mem_fun for differently qualified \
member functions (issue #24).
Terse key specification syntax now correctly handles noexcept-specified \
member functions (issue #24).
Outcome:
Enhancements:
#184 As per request from Boost release managers, relocated \
version.hpp and revision.hpp into detail, and added the Boost licence \
boilerplate to the top of every source file which was missing one (I think). \
Also took the opportunity to run the licence restamping script over all Outcome, \
so copyright dates are now up to date.
#185 Add FAQ item explaining issue #185, and why we will do nothing \
to fix it right now.
#189 Refactored the OUTCOME_TRY implementation to use more clarified \
customisation points capable of accepting very foreign inputs. Removed the \
std::experimental::expected<T, E> specialisations, as those are no longer \
necessary. Fixed the documentation for the customisation points which previously \
claimed that they are ADL discovered, which they are not. Added a recipe \
describing how to add in support for foreign input types.
#183 Added a separate motivation/plug_error_code specifically for Boost.
Bug fixes:
OUTCOME_VERSION_MINOR hadn't been updated to 1.
#181 Fix issue #181 where Outcome didn't actually implement the \
strong swap guarantee, despite being documented as doing so.
#190 Fix issue #190 in Boost edition where unit test suite was not \
runnable from the Boost release distro.
#182 Fix issue #182 where trait::is_exception_ptr_available<T> \
was always true, thus causing much weirdness, like not printing diagnostics and \
trying to feed everything to make_exception_ptr().
#192 Fix issue #192 where the \
std::basic_outcome_failure_exception_from_error() was being defined twice for \
translation units which combine standalone and Boost Outcome's.
Parameter:
Upgraded keyword generation macro BOOST_PARAMETER_TEMPLATE_KEYWORD (#15).
Moved keyword generation macro BOOST_PARAMETER_NESTED_KEYWORD from \
Accumulators to this library (#28).
Added support for std::reference_wrapper and std::ref() (#16).
Moved boost::parameter::required, boost::parameter::optional, and \
boost::parameter::deduced metafunction definitions to their own header files in \
directory boost/parameter (#18).
Added support for Boost.Parameter-enabled function call operators (#20).
Added support for parameter category qualifiers "forward", \
"consume", and "move_from" (current qualifiers are \
"in", "out", and "in_out") (#21) (#23) based on \
http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters. \
Added new usage syntax BOOST_PARAMETER_NAME((object-name), namespace-name) \
qualifier(tag-name)) and BOOST_PARAMETER_NAME(qualifier(name)). (Existing code \
that uses qualifiers directly and correctly with BOOST_PARAMETER_FUNCTION and \
other code generation macros should remain unaffected for now, so no breaking \
changes.) The reason for the change in usage is to enable applying of parameter \
category constraints to Boost.Parameter-enabled functions and constructors \
invoked through argument composition. (Otherwise, it is currently possible to \
use argument composition to bypass parameter category constraints applied in \
BOOST_PARAMETER_FUNCTION et. al.)
Added support for perfect forwarding (#23) (#26), so that \
parameter::parameters::operator() can accept non-const rvalues. As a positive \
side effect, Boost.Parameter-enabled functions and constructors are no longer \
bound by BOOST_PARAMETER_MAX_ARITY on compilers that support perfect forwarding. \
User code can now check for this support by detecting the configuration macro \
BOOST_PARAMETER_HAS_PERFECT_FORWARDING, or manually turn off this support by \
defining the configuration macro BOOST_PARAMETER_DISABLE_PERFECT_FORWARDING.
Added metafunctions boost::parameter::is_argument_pack (#27), \
boost::parameter::are_tagged_arguments (#52), and \
boost::parameter::result_of::compose (#75).
Added variadic function template boost::parameter::compose() which takes \
in named arguments and returns them in an argument pack (#52). For compilers \
that do not support perfect forwarding, the configuration macro \
BOOST_PARAMETER_COMPOSE_MAX_ARITY determines the maximum number of arguments \
that boost::parameter::compose() can take in (#61).
Added code generation macros \
BOOST_PARAMETER_BASIC_FUNCTION_CALL_OPERATOR, \
BOOST_PARAMETER_BASIC_CONST_FUNCTION_CALL_OPERATOR, \
BOOST_PARAMETER_NO_SPEC_FUNCTION, BOOST_PARAMETER_NO_SPEC_MEMBER_FUNCTION, \
BOOST_PARAMETER_NO_SPEC_CONST_MEMBER_FUNCTION, \
BOOST_PARAMETER_NO_SPEC_FUNCTION_CALL_OPERATOR, \
BOOST_PARAMETER_NO_SPEC_CONST_FUNCTION_CALL_OPERATOR, \
BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR, and \
BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR (#52).
Added support for Boost.MP11 (#47) (#66) (#70). User code can now check \
for this support by detecting the configuration macro \
BOOST_PARAMETER_CAN_USE_MP11, or manually turn off this support by defining the \
configuration macro BOOST_PARAMETER_DISABLE_MP11_USAGE.
Improved support for parameter-dependent return types via SFINAE (#73).
PtrContainer:
Fix a ptr_vector regression introduced in 1.66.0 (#24).
PolyCollection:
Maintenance work.
SmartPtr:
Added aliasing constructors to weak_ptr
Added weak_ptr<T>::empty()
Added enable_shared_from, shared_from, and weak_from
Stacktrace:
Fixed output of name(), source_location() and source_line() for the \
default constructed frame with thread sanitizer builds in C++98 mode.
Fixed output of long strings from name() and source_location() on MSVC #78.
Maintenance work.
Test:
Boost.test v3.11 see the Changes log for more details.
Breaking changes:
Boost.Test shows deprecation warnings if some very old headers as \
deprecated. If you encounter such warnings, please follow the indications: those \
headers will be removed in a future release.
New feature:
Now BOOST_TEST can be used to compare abstract types
Bug fixes and pull requests:
GitHub Issues: #209, #218
GitHub Pull Requests: #219, #224
Utility:
Implemented function template ostream_string in \
<boost/utility/ostream_string.hpp> to optimally write any kind of string \
content to an output stream. It satisfies the requirements of \
[ostream.formatted.reqmts]. (Glen Fernandes)
Optimized the stream output operators of basic_string_view and \
basic_string_ref to write directly to the rdbuf stream buffer. (Glen Fernandes)
Uuid:
Breaking change: MD5 name-based uuid generation was corrected to be \
identical on all endian systems. Define BOOST_UUID_COMPAT_PRE_1_71_MD5 to keep \
the result in a format compatible with 1.66 through 1.70. This does not affect \
the default name-based uuid generation which is based on SHA1. (#109)
Variant:
Fixed compilation of boost::apply_visitor with variants passed by non \
const reference in #68. Many thanks to Ed Catmur for providing the fix.
Added support for std::hash (#49). Macro \
BOOST_VARIANT_DO_NOT_SPECIALIZE_STD_HASH could be defined to avoid those \
specializations.
Added micro optimizations for binary size and performance by Nikita \
Kniazev in #63 and #66.
Maintenance work, including #64 by Nikita Kniazev and #67 by Hans Dembinski.
YAP:
Added an example showing how to make self-evaluating YAP expressions \
(that is, expressions that don't need an explicit call to evaluate() or \
transform()).
|
Log message:
Update to 1.70.0
Changelog:
New Libraries
Outcome: A set of tools for reporting and handling function failures in \
contexts where directly using C++ exception handling is unsuitable, from Niall \
Douglas.
Histogram: Fast and extensible multi-dimensional histograms with convenient \
interface for C++14, from Hans Dembinski.
Updated Libraries
Asio:
This release includes a number of new features, bug fixes, performance \
enhancements, and documentation improvements. Notable changes include:
Added the ability to use custom I/O executors with I/O objects (such \
as sockets).
Added a new async_result form with an initiate static member function.
Updated the Coroutines TS support and promoted it to the asio namespace.
Added a new DynamicBuffer_v2 concept which is CopyConstructible.
Added a new async_compose function that simplifies the \
implementation of user-defined asynchronous operations.
Added a make_strand helper function.
Relaxed the completion condition type requirements to only require \
move-constructibility rather than copy-constructibility.
Added a constructor for local::basic_endpoint that takes a string_view.
Added the noexcept qualifier to various functions.
Added a new BOOST_ASIO_DISABLE_VISIBILITY configuration #define.
Enabled recycling of the memory used to type-erase a function object \
with the polymorphic executor.
Changed receive operations to return the correct number of bytes \
transferred when truncation (error::message_size) occurs on a datagram-oriented \
socket.
Fixed calculation of absolute timeout when the backend uses \
pthread_cond_timedwait.
Changed the range-based asynchronous connect operation to deduce the \
EndpointSequence iterator type.
Fixed buffer_sequence_begin and buffer_sequence_end to prevent \
implicit conversion.
Ensured SSL handshake errors are propagated to the peer before the \
local operation completes.
Suppressed the eof error on SSL shutdown as it actually indicates \
success.
Added a fallback error code for when we OpenSSL produces an \
SSL_ERROR_SYSCALL result without an associated error.
Changed composed asynchronous read and write operations to move \
buffer sequence objects.
Fixed a macOS-specific warning about the deprecation of OSMemoryBarrier.
Fixed compile errors that occur when using the composed read and \
write operations with MSVC 11.0.
Improved dispatch, post and defer documentation.
Fixed a Windows-specific memory leak that may occur when \
system_executor is used.
Consult the Revision History for further details.
Beast: BIG Update!!!
Some APIs have changed.
The reference shows a star ★ next to each new item.
Beast needs your help!
Tell Us how you or your company use Beast
Please report any bugs, feature requests, or general feedback
Join the C++ Slack Workspace for free and chat with us in the #beast \
and #boost channels
Don't forget to star the repository ⭐!
More tutorials, code like the pros!
Networking Refresher teaches you from the ground up.
Updated Asynchronous Echo example
Updated Detect SSL composed operation tutorial
websocket-chat-multi threaded chat server with a JavaScript browser \
client
basic_stream and tcp_stream offer:
Timeouts: async_read_some, async_write_some complete with \
error::timeout on expiration!
Traffic-shaping policies simple and unlimited, or a user-defined \
RatePolicy!
Put the strand directly on the socket using P1322R0, no more \
bind_executor at call sites!
Base classes async_base and stable_async_base and handle all composed \
operation boilerplate for you.
ssl_stream provides a movable, assignable SSL stream with a flat write \
optimization.
All asynchronous operations use Asio's async_initiate for efficient \
integration with Coroutines TS.
⚡ faster compilation, define BOOST_BEAST_SEPARATE_COMPILATION and \
#include <boost/beast/src.hpp> in one of your .cpp files!
See the full Release Notes for a complete list of changes.
Context:
#91: cleanup of stack if creating ucontext fails
#97: add missing BOST_CONTEXT_DECL in stack_context
#98: fix jump_i386_sysv_macho writing garbage to the x87 control word
Coroutine2:
#28: don't crash on pthread_cancel
DLL:
New macro BOOST_DLL_USE_STD_FS. Define it to 1 to make the Boost.DLL use \
C++17's std::filesystem::path, std::system_error and std::error_code (#21). Note \
that exception types change from boost::system::system_error to \
std::system_error, so make sure to update catches.
Significant rewrite of the dynamic loadable detection and decoration \
logic. More precise errors are now reported in case of loading failures. Added \
shared_library::decorate() function that returns a decorated path to the library \
without doing any platform related queries and detections. Prefer using \
shared_library::load and shared_library constructors for better results (many \
thanks to Loïc Touraine for the work PR#23).
CI hardening, docs updates, typos fixes, cleanups and mg
#196: fix high contention on remote_ready_splk_
Filesystem:
Fixed a few instances of dereferencing std::string::end() in path \
implementation.
Fixed program termination in case of out of memory condition in \
directory iteratorsnce to error_code. (#58)
Fixed possible linking errors caused by missing definitions of static \
members of path. (#12759)
Fixed possible use of uninitialized data in directory iterator increment \
operation on Linux.
Added support fortatus query overloads for directory_entry. This avoids \
a relatively expensive OS query when file status is requested for a result of \
dereferencing a directory iterator. (PR#55)
Reworked current_path and read_symlink implementation to avoid \
possiblfilesystems. The functions now have an internal limit of the path size \
they will accept from the OS, which is currently 16 MiB.
Increased the size of the internal buffer used by copy_file.
Integer:
Added Extended Euclidean Algorithm and Modular Multiplicative Inverse \
function. (Nick Thompson, PR#11)
Log:
New features:
Added support for generating another log file name before collecting \
the file in the text file sink backend. This allows to combine appending to \
aexisting log file with timestamps and file counters in log filenames, and, \
consequently, file collection in general.
See changelog for more details.
Math:
New features:
Add Lanczos smoothing derivatives
Move numols/ to boost/math/differentiation/finite_difference.hpp.
Add mean, variance, skewness, kurtosis, median, Gini coefficient, \
and median absolute deviation to tools/univariate_statistics.hpp.
Add correlation coefficients and covariand absolute Gini \
coefficient, Hoyer sparsity, oracle SNR, and the M[sub 2]M[sub 4] SNR estimator \
to tools/signal_statistics.hpp.
Add total variation, l0, l1, l2, and sup norms, as well as \
corresponding distance functions to tools/norms.hpp.
for polynomials, support complex coefficients, add .prime() and .integrate() \
methods.
Add quadratic_roots to tools/roots.hpp.
Add support for complex-valued functions to Newton's method in roots.hpp.
Add Catmull-Rom inted mp_invoke to mp_invoke_q
Added mp_similar
Added mp_set_union, mp_set_intersection, mp_set_difference
Added mp_not_fn
Added mp_transform_first, mp_transform_second, mp_transform_third
Added mp_filter
Addedp_valid_q
Added mp_back, mp_pop_back
Multi-index Containers:
size_type and difference_type are now defined as the allocator's \
same-named types. This will not make any difference in the vast majority of \
cases, but allows for some degreevia user-defined allocator types (see issue #17 \
for motivation). For the moment being, this change is not documented in the \
reference section (i.e., it has semi-official status).
Maintenance work.
Multiprecision:
Fix various conversioncheck for compatibility with Boost.Optional.
Prevent instantiation of std::numeric_limits on any old type when \
checking for convertibility. See #98.
Update variable precision code to account for arbitrary precision \
integers. See #103.
lization archives.
Fix bug in fixed precision iostream formatting in mpf_float and \
mpfr_float. See #113.
Add more overloads for special functions which are better handled \
natively by MPFR.
Fixed bug in generic exp implementation wh.
Fixed generic conversion from float to integer to avoid undefined \
behaviour. See #110.
PolyCollection:
Improved handling of stateful allocators and allocator propagation \
traits, after an error reported by Billy O'Neal (PR#9).
ug with an internal cache structure.
Spirit:
Removed use of deprecated boost/detail/iterator.hpp header. PR#432
X3
Integer parsers should now handle user defined types. PR#429
Note: The check_overflow trait defan \
std::numeric_limits<T>::is_bounded instead of \
boost::integer_traits<T>::is_integral.
Removed sequence into plain parsing. Now it triggers a compile time \
error instead of silently parsing the the sequence and taking the last value as \
a resulte_rule instantiation with BOOST_SPIRIT_INSTANTIATE when:
A rule has no attribute. PR#455
An actual attribute is not of type a rule was declared with. \
PR#456 #457
A huge thanks goes out to Xeverous for reporting Fixed unneded \
attribute synthesization and no-transformation attribute reference pass-through \
in rules. #444 PR#449 PR#452
Removed broken 1.0#INF parser. It was poorly documented and never \
worked. #415 PR#458 #8699
The undocumenoved due to bugs PR#449 and to simplify attribute \
transformation. PR#460
If you were using it to workaround bugs in attribute transformation \
- they should not be needed anymore as of this release.
The integer value parser now respe10 value. PR#469
Fixed underflow check for a (Min % Base) == 0 corner case. PR#469
Fixed an output value on overflow of IgnoreOverflowDigits=true \
integer parser. PR#470
Container attribute elements were copyied, but notial handling of \
references in transform_attribute was removed. PR#480
V2
Macro name collisions and namespace conflicts with Boost.Endian were \
fixed. PR#349 PR#482
utree
Fixed UB in tag getter due to left shi Fixed \
double-conversion (spirit::string -> std::string -> spirit::string). \
PR#462
Qi
Added static asserts for rule skipper type problems. PR#427
The check_overflow trait default implementation now \
reoost::integer_traits<T>::is_integral PR#429
Integer parsers should now handle user defined types. PR#429
Note: The check_overflow trait default implementation now relies \
on std::numeric_limits<T>::is_bounded instead of boosl.
Removed broken 1.0#INF parser. It was poorly documented and \
never worked. #415 PR#458 #8699
The undocumented make_attribute trait was merged into \
transform_attribute trait. PR#471
The pre_transform, post_tility functions were removed in favor \
of directly using pre/post/fail of the transform trait. PR#467
The integer value parser now respects \
std::numeric_limits<T>::digits10 value. PR#469
Fixed underflow check for a (Min % B Fixed an output \
value on overflow of IgnoreOverflowDigits=true integer parser. PR#470
Special handling of references in transform_attribute was \
removed. PR#480
Lex
Fixed UB in default constructor of ken type. PR#420
Classic:
Fixed position_iterator forming reference to local when the \
underlying iterator dereference operator returns a non-reference type. PR#422 \
#9737
Stacktrace:
Build fix for iOS 32-bit ARM (many thanksng the fix PR#70)
Fixed multiple typos, warnings and updated the docs.
Test:
Boost.test v3.10 see the Changes log for more details.
Breaking changes:
Boost.Test minimal.hpp is now showing a deprecation warning,
omparison may fail tests that were silently not using the floating point \
comparison logic prior to this release,
Internal API change to unit_test_log_formatter, see detailed change log,
New feature:
Floating point compariso non-floating point and arithmetic operands: \
expressions like BOOST_TEST(3.0001 == 3) now use floating point support of \
Boost.Test,
Custom datasets are not required to declare the sample type field \
anymore,
Extending template test riadic definition,
Windows support for timed tests,
Timed test on test-suites,
Removed dependency to Boost.Timer,
New macro BOOST_TEST_INFO_SCOPE for scoped context declaration,
Improved BOOST_TE and pull requests:
Trac tickets: #7397, #9434, #13106, #13418
GitHub Issues: #133, #138, #141, #157, #160, #174, #176, #177, #180, \
#181, #194, #196, #198, #199, #202, #203, #204
GitHub Pull Requests: PR#171, PR#172, PR PR#195, PR#195, PR#197, PR#205
TypeIndex:
Support for the GHS C++ compiler added (many thanks to Brandon \
Castellano for providing the patch PR#28)
Optimized string and type comparisons (many thanks to Andrey Semashev \
for providing the-win compilation (many thanks to Peter Dimov for providing the \
patch PR#25)
CI hardening.
TypeTraits:
Added is_bounded_array and is_unbounded_array (Glen Fernandes).
Added copy_reference and copy_cv_ref (Glen Fernandes).
/clr option.
Misc compiler compatibility fixes.
Variant:
Many cleanups and internal improvements, many thanks to Nikita Kniazev \
(PR#55, PR#56, PR#57) and Louis Dionne (PR#51)
CI hardening.
uBlas:
Addition of tensorassoy PR#65)
Addition of basic OpenCL support (many thanks to Fady Essam PR#59)
Integration of basic benchmark suite (many thanks to Stefan Seefeld PR#57)
CI integration and hardening
Compilers Tested
Boost's primary test compileang: 3.0, 4.0.1, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, \
6.0.1, 7.0.0, 8.0.0
Clang, C++17: 5.0.2, 6.0.17, 4.5.3, 4.6.3, 5.4.0, 8.0.1
GCC, C++0x: 4.4.7
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
, 9.1.0, 10.0.0
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
Apple Clang, C++17: 9.1.0, 10.0.0
Apple Clang, C++1z: 9.0.0
Apple Clang, C++2a: 10.0.0
Windows:
GCC: 3.4.4.0, 4.5.4
GCC, C++0x: 4.6.4
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
Fr
Clang, C++11: 4.0.0
Clang, C++14: 4.0.0
Clang, C++1z: 4.0.0
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3..0.0, 8.0.0
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, \
6.0.1, 7.0.0, 8.0.0
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
GCC, C++0x: 4.4.7
G9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Apple Clang: 9.0.0, 9.1.0, 10.0.0
Apple Clang, C++11: 9.0.0, 9ang, C++14: 9.0.0, 9.1.0, 10.0.0
Apple Clang, C++17: 9.1.0, 10.0.0
Apple Clang, C++1z: 9.0.0
Apple Clang, C++2a: 10.0.0
Windows:
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
GCC, C++0x: 4.6.4
GCC, C++11 GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
FreeBSD:
Clang: 4.0.0
Clang, C++11: 4.0.0
Clang, C++14: 4.0.0
|