...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost/core/pointer_in_range.hpp
header with a pointer_in_range
function template to check if a pointer is within a given range.
type_name
for abstract
classes. (#172)
boost/core/type_name.hpp
compilation error with MSVC with
disabled native wchar_t
type. (#173)
empty_value
compilation
errors when it is used with a nested class. (PR#175)
boost/core/functor.hpp
header with a functor
class template for wrapping a raw function into a function object class.
Changed null_deleter
,
fclose_deleter
and checked deleter definitions
so that they don't bring namespace boost
into argument-dependent lookup in cases like this:
std::unique_ptr< std::FILE, boost::fclose_deleter > p1, p2; swap(p1, p2); // no longer looks for boost::swap as part of ADL
Users may need to either explicitly qualify the namespace of the called
function or add a using
-declaration.
boost::swap
utility function has been renamed
to boost::core::invoke_swap
to avoid forming a potential
infinite recursion when the arguments are not swappable. The new function
is defined in boost/core/invoke_swap.hpp
and is functionally equivalent
to boost::swap
. The old boost::swap
name is preserved for backward compatibility but deprecated and will
be removed in a future release. Its noexcept
specification has been removed to avoid compile errors caused by compile-time
recursion. BOOST_ALLOW_DEPRECATED_SYMBOLS
or BOOST_ALLOW_DEPRECATED
can be defined to suppress deprecation warnings for the transition period.
(#148)
boost/swap.hpp
, boost/utility/swap.hpp
and boost/core/swap.hpp
are deprecated and will be removed.
Please, switch to boost/core/invoke_swap.hpp
.
BOOST_ALLOW_DEPRECATED_HEADERS
or BOOST_ALLOW_DEPRECATED
can be defined to suppress deprecation warnings.
boost::core::type_name
.
boost/core/bit.hpp
are now constexpr
on recent MSVC versions (VS2019 update 5 and later.)
boost::core::byteswap
(an implementation of std::byteswap
from C++23) to boost/core/bit.hpp
.
sp_thread_pause
,
sp_thread_yield
, sp_thread_sleep
from SmartPtr implementation
details to boost/core/yield_primitives.hpp
.
boost/core/snprintf.hpp
header with portable definitions of snprintf
,
vsnprintf
and their
wchar_t
counterparts.
boost/core/is_same.hpp
and boost::core::is_same
.
The header will be removed in a future release. Users are advised to
use Boost.TypeTraits
or C++ standard library type traits instead.
boost::ref
member functions and associated
methods with noexcept
.
boost::swap
function with noexcept
,
depending on whether the type supports a non-throwing swap operation.
boost::core::launder
,
a portable implementation of std::launder
.
BOOST_CORE_ALIGNOF
,
a portable implementation of alignof
.
boost::core::max_align_t
,
a portable equivalent of std::max_align_t
,
and boost::core::max_align
, the alignment of max_align_t
.
boost::core::memory_resource
,
a portable equivalent of std::pmr::memory_resource
from C++17.
boost/core/serialization.hpp
,
a collection of primitives allowing libraries to implement Boost.Serialization
support for their types without including a Serialization header and
thereby making their libraries depend on Serialization.
boost::data
,
an implementation of std::data
.
boost::size
,
an implementation of std::size
.
boost::span
to use boost::data
which adds support for range construction from an std::initializer_list
.
boost::identity
,
an implementation of std::identity
.
This facility has been moved from Boost.Functional.
empty_value
members are now marked as constexpr
.
fclose_deleter
,
a deleter that calls std::fclose
on a pointer to std::FILE
.
boost/core/bit.hpp
now explicitly require unsigned
integers on input. (#129)
bit_width
now returns
int
instead of a value of
the input argument type. This follows the resolution of LWG3656.
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 boost/core/allocator_access.hpp
.
In particular, new methods allocator_construct_n
and allocator_destroy_n
were added for allocating and destroying arrays.
span
in C++17 mode when Boost.Range
headers were included. (#105,
PR#115)
type_name
.
pointer_traits
,
pointer rebinding now supports C++03 compilers.
boost::allocator_traits
, an implementation
of std::allocator_traits
.
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.
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
.
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>
.
boost::core::type_name
, a utility function that
returns the name of a type as a string.
boost::span
, a C++11 implementation of C++20's
std::span
.
boost/core/uncaught_exceptions.hpp
has been modified for compatibility
with Mac OS 10.4 and older.
boost/core/cmath.hpp
, a portable implementation of the
floating point classification functions from <cmath>
.
boost/core/bit.hpp
, a portable implementation of the
C++20 standard header <bit>
.
BOOST_TEST_EQ
,
BOOST_TEST_NE
for character
types under C++20.
allocator_traits
.)
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.
BOOST_TEST_WITH
to Lightweight Test.
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.
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>*
.
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.
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.
<boost/core/uncaught_exceptions.hpp>
header, added workarounds for better
compatibility with QNX SDP 7.0 when libc++/libc++abi libraries are used.
<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.
boost::empty_value
, for library authors to
conveniently leverage the Empty Base Optimization to store objects of
potentially empty types.
boost::quick_exit
to provide the C++11 standard
library facility std::quick_exit
functionality.
boost::report_errors
.
to_address
and
pointer_traits
to reflect
the design adopted for C++20 in P0653R2.
pointer_traits
for C++03 and higher, that implements P0653r0.
BOOST_TEST_GT
and
BOOST_TEST_GE
to Lightweight
Test.