- Update to version 1.67.0
New libraries:
* Contract: Contract programming for C++. All contract
programming features are supported: Subcontracting, class
invariants, postconditions (with old and return values),
preconditions, customizable actions on assertion failure (e.g.,
terminate or throw), optional compilation and checking of
assertions, etc, from Lorenzo Caminiti.
* HOF: Higher-order functions for C++, from Paul Fultz II.
Breaking changes in updated libraries:
* atomic: Breaking change: Changed the result of the
(op)_and_test operations added in Boost 1.66 to the opposite -
the functions now return true if the operation result is
non-zero. This is consistent with other test methods in
Boost.Atomic and the C++ standard library. Users can define
BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST when compiling their
code to emit warnings on every use of the changed functions.
This way users can locate the code that needs to be updated.
* multiprecission: When converting a multiprecision integer to a
narrower type, if the value is too large (or negative) to fit
in the smaller type, then the result is either the maximum (or
minimum) value of the target type. This was always the intended
behaviour, but was somewhat haphazardly enforced before. If you
really do want just the low order N bits of a value, then you
will need to mask these out prior to the case, for example:
static_cast<unsigned>(~static_cast<unsigned>(0) & my_value).
Note that technically (to avoid undefined behaviour) you should
do the same thing with built in integer types too.
* spirit: Removed `with_context`
utility: <boost/utility.hpp> header no longer includes
boost::next and boost::prior as they have been moved to the
iterator module. Instead include <boost/next_prior.hpp>. Other
uses of <boost/utility.hpp> are discouraged, it's better to use
the header for the specific functionality instead.
* uuid: random_generator is no longer copyable
Libraries that were updated: Asio, Atomic, Beast, ContainerHash,
Context, Core, Coroutine2, DateTime, DLL, Fiber, Filesystem,
Fusion, Locale, Log, Math, Multi-index Containers,
Multiprecission, Optional, Phoenix, PolyCollection, Python,
Spirit, Stacktrace, Test, TypeIndex, TypeTraits, Utility,
Unordered, Units, Uuid, and Variant. For complete list of
changes, see,
https://www.boost.org/users/history/version_1_67_0.html
- refreshed patches:
* boost-strict_aliasing.patch
* boost-aarch64-flags.patch
- python_library_name.patch: adapted to not append version number
to library names, like new boost is doing.
- disable python2 builds by default
- use regular Requires for libboost_header dependency
OBS-URL: https://build.opensuse.org/request/show/597342
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=212