| Home | Libraries | People | FAQ | More

## Revision History

### 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`.

### Changes in 1.77.0

- `boost/core/uncaught_exceptions.hpp` has been modified for compatibility with Mac OS 10.4 and older.

### 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`.)

### 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.

### 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.

### 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`.

### Changes in 1.67.0

- Updated `to_address` and `pointer_traits` to reflect the design adopted for C++20 in P0653R2.

### Changes in 1.65.0

- Implemented `pointer_traits` for C++03 and higher, that implements P0653r0.
- Added `BOOST_TEST_GT` and `BOOST_TEST_GE` to Lightweight Test.