The rename allows to avoid forming an infinite recursion in compile time
(because of noexcept specification that needs to resolve the unqualified call
to swap) or run time (in case if the boost::swap function is the only one
suitable for the passed arguments).
To avoid the compile-time recursion, removed noexcept specification from
boost::swap. The specification is still present in boost::core::invoke_swap.
Deprecated boost::swap and associated headers. boost::core::invoke_swap
is defined in a new boost/core/invoke_swap.hpp header.
Updated docs and tests. Removed tests that check inclusion of deprecated
headers.
Fixes https://github.com/boostorg/core/issues/148.
Moved is_same implementation to detail (both directory and namespace)
to use in the public headers and avoid introducing new dependencies.
The documentation now recommends users to use Boost.TypeTraits or
C++ standard library instead.
Also, removed unnecessary includes and added missing ones in a few
places.
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.
The header defines boost::iterator template, which is an alias for
std::iterator, which is itself deprecated since C++17.
Updated test to avoid testing the definition in C++17 onwards
to avoid failures due to deprecation warnings from libc++-13.