mirror of
https://github.com/boostorg/core.git
synced 2025-05-11 05:07:39 +00:00
This definitions is mostly a workaround for older MSVC versions that only provided non-portable _snprintf etc. that are not fully conforming to the standard snprintf. This implementation fixes its issues wrt. null termination and returned values in case of buffer overflows. On platforms that support the standard snprintf, the definitions in the header are equivalent to the standard functions.
138 lines
6.3 KiB
Plaintext
138 lines
6.3 KiB
Plaintext
[/
|
|
Copyright 2021 Peter Dimov
|
|
Copyright 2022 Andrey Semashev
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
https://boost.org/LICENSE_1_0.txt)
|
|
]
|
|
|
|
[section Revision History]
|
|
|
|
[section Changes in 1.82.0]
|
|
|
|
* Added [link core.snprintf `boost/core/snprintf.hpp`] header with portable definitions of `snprintf`, `vsnprintf` and
|
|
their `wchar_t` counterparts.
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.81.0]
|
|
|
|
* [link core.empty_value `empty_value`] members are now marked as `constexpr`.
|
|
* Added [link core.fclose_deleter `fclose_deleter`], a deleter that calls `std::fclose` on a pointer to `std::FILE`.
|
|
* Bit manipulation utilities in [link core.bit `boost/core/bit.hpp`] now explicitly require unsigned integers on input.
|
|
([@https://github.com/boostorg/core/issues/129 #129])
|
|
* `bit_width` now returns `int` instead of a value of the input argument type. This follows the
|
|
resolution of [@https://cplusplus.github.io/LWG/issue3656 LWG3656].
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.80.0]
|
|
|
|
* In [link core.allocator_access `boost/core/allocator_access.hpp`], added detection of `construct` and `destroy`
|
|
members of an allocator.
|
|
* `boost/core/alloc_construct.hpp` header is now deprecated and will be removed in a future release. Its functionality
|
|
was moved to [link core.allocator_access `boost/core/allocator_access.hpp`]. In particular, new methods
|
|
`allocator_construct_n` and `allocator_destroy_n` were added for allocating and destroying arrays.
|
|
* Worked around MSVC bug that failed to compile [link core.span `span`] in C++17 mode when Boost.Range headers were included.
|
|
([@https://github.com/boostorg/core/issues/105 #105], [@https://github.com/boostorg/core/pull/115 PR#115])
|
|
* Added support for 128-bit integer types in [link core.type_name `type_name`].
|
|
* In [link core.pointer_traits `pointer_traits`], pointer rebinding now supports C++03 compilers.
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.79.0]
|
|
|
|
* Added `boost::allocator_traits`, an implementation of `std::allocator_traits`.
|
|
* Made `boost::pointer_traits` SFINAE friendly.
|
|
* `boost/iterator.hpp` is deprecated and will be removed in a future release. The header defines the
|
|
`boost::iterator` template, which is equivalent to `std::iterator` in the `<iterator>` header. However,
|
|
since `std::iterator` is itself deprecated in C++17, users are advised to remove the use of `boost::iterator`
|
|
or `std::iterator` from their code.
|
|
* Added `boost::core::verbose_terminate_handler`, a utility function intended
|
|
to be passed to `std::set_terminate` that prints information about the
|
|
uncaught exception to `stderr`.
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.78.0]
|
|
|
|
* Added a generic implementation to `boost/core/cmath.hpp`, enabled when `BOOST_CORE_USE_GENERIC_CMATH`
|
|
is defined or when the platform does not provide the necessary facilities in `<cmath>`.
|
|
* Added `boost::core::type_name`, a utility function that returns the name of a type as a string.
|
|
* Added `boost::span`, a C++11 implementation of C++20's `std::span`.
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.77.0]
|
|
|
|
* `boost/core/uncaught_exceptions.hpp` has been modified for compatibility with Mac OS 10.4 and older.
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.76.0]
|
|
|
|
* Added implicit conversion between compatible reference wrappers.
|
|
* Added `boost/core/cmath.hpp`, a portable implementation of the floating point classification functions from `<cmath>`.
|
|
* Added `boost/core/bit.hpp`, a portable implementation of the C++20 standard header `<bit>`.
|
|
* Fixed `BOOST_TEST_EQ`, `BOOST_TEST_NE` for character types under C++20.
|
|
* Revised allocator access utilities (now support VS2013, and no workarounds use `allocator_traits`.)
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.74.0]
|
|
|
|
* Implemented the allocator access utilities which provide a replacement for `allocator_traits`
|
|
with individual traits and functions for each facility. They support the C++11 allocator model
|
|
when possible and provide a fallback for C++98 compatibility.
|
|
* Added `BOOST_TEST_WITH` to Lightweight Test.
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.71.0]
|
|
|
|
* 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.
|
|
* 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>*`.
|
|
* 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.
|
|
* 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.
|
|
* In `<boost/core/uncaught_exceptions.hpp>` header, added workarounds for better compatibility with QNX SDP 7.0
|
|
when libc++/libc++abi libraries are used.
|
|
* 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.
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.69.0]
|
|
|
|
* Implemented `boost::empty_value`, for library authors to conveniently leverage the Empty Base Optimization to
|
|
store objects of potentially empty types.
|
|
* Implemented `boost::quick_exit` to provide the C++11 standard library facility `std::quick_exit` functionality.
|
|
* Reduced the number of statics in Lightweight Test, and employ lighter abort behavior for MSVC compilers upon
|
|
failure to call `boost::report_errors`.
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.67.0]
|
|
|
|
* Updated `to_address` and `pointer_traits` to reflect the design adopted for C++20 in
|
|
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r2.html P0653R2].
|
|
|
|
[endsect]
|
|
|
|
[section Changes in 1.65.0]
|
|
|
|
* Implemented `pointer_traits` for C++03 and higher, that implements
|
|
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0653r0.html P0653r0].
|
|
* Added `BOOST_TEST_GT` and `BOOST_TEST_GE` to Lightweight Test.
|
|
|
|
[endsect]
|
|
|
|
[endsect]
|