Fixes #330: ("boost/container/detail/pair.hpp: partial specializations of boost::move_detail traits for std::pair break Unity (jumbo)")

This commit is contained in:
Ion Gaztañaga
2026-02-16 22:53:37 +01:00
parent be8fa0ae35
commit 958fe7d326
2 changed files with 2 additions and 56 deletions

View File

@@ -1489,6 +1489,7 @@ collect them containers and build [*Boost.Container], a library targeted to a wi
* Fixed bugs/issues:
* [@https://github.com/boostorg/container/issues/323 GitHub #323: ['"flat_tree::try_emplace UB"]].
* [@https://github.com/boostorg/container/issues/328 GitHub #328: ['"boost::container::deque stores a redundant copy of the allocator, increasing size"]].
* [@https://github.com/boostorg/container/issues/330 GitHub #330: ['"boost/container/detail/pair.hpp: partial specializations of boost::move_detail traits for std::pair break Unity (jumbo)"]].
[endsect]

View File

@@ -500,14 +500,6 @@ struct is_class_or_union< ::boost::container::dtl::pair<T1, T2> >
BOOST_STATIC_CONSTEXPR bool value = true;
};
template <class T1, class T2>
struct is_class_or_union< std::pair<T1, T2> >
//This specialization is needed to avoid instantiation of pair in
//is_class, and allow recursive maps.
{
BOOST_STATIC_CONSTEXPR bool value = true;
};
template<class T>
struct is_union;
@@ -519,14 +511,6 @@ struct is_union< ::boost::container::dtl::pair<T1, T2> >
BOOST_STATIC_CONSTEXPR bool value = false;
};
template <class T1, class T2>
struct is_union< std::pair<T1, T2> >
//This specialization is needed to avoid instantiation of pair in
//is_class, and allow recursive maps.
{
BOOST_STATIC_CONSTEXPR bool value = false;
};
template<class T>
struct is_class;
@@ -538,16 +522,8 @@ struct is_class< ::boost::container::dtl::pair<T1, T2> >
BOOST_STATIC_CONSTEXPR bool value = true;
};
template <class T1, class T2>
struct is_class< std::pair<T1, T2> >
//This specialization is needed to avoid instantiation of pair in
//is_class, and allow recursive maps.
{
BOOST_STATIC_CONSTEXPR bool value = true;
};
//Triviality of pair
// std::pair specializations defined in Boost.Move
//
// is_trivially_copy_assignable
@@ -563,11 +539,6 @@ struct is_trivially_copy_assignable<boost::container::dtl::pair<A,B> >
boost::move_detail::is_trivially_copy_assignable<B>::value;
};
template<class A, class B>
struct is_trivially_copy_assignable<std::pair<A,B> >
: is_trivially_copy_assignable<boost::container::dtl::pair<A,B> >
{};
//
// is_trivially_move_assignable
//
@@ -582,12 +553,6 @@ struct is_trivially_move_assignable<boost::container::dtl::pair<A,B> >
boost::move_detail::is_trivially_move_assignable<B>::value;
};
template<class A, class B>
struct is_trivially_move_assignable<std::pair<A,B> >
: is_trivially_move_assignable<boost::container::dtl::pair<A,B> >
{};
//
// is_trivially_copy_constructible
//
@@ -602,11 +567,6 @@ struct is_trivially_copy_constructible<boost::container::dtl::pair<A,B> >
boost::move_detail::is_trivially_copy_constructible<B>::value;
};
template<class A, class B>
struct is_trivially_copy_constructible<std::pair<A,B> >
: is_trivially_copy_constructible<boost::container::dtl::pair<A,B> >
{};
//
// is_trivially_move_constructible
//
@@ -621,11 +581,6 @@ struct is_trivially_move_constructible<boost::container::dtl::pair<A,B> >
boost::move_detail::is_trivially_move_constructible<B>::value;
};
template<class A, class B>
struct is_trivially_move_constructible<std::pair<A,B> >
: is_trivially_move_constructible<boost::container::dtl::pair<A,B> >
{};
template<class T>
struct is_trivially_destructible;
@@ -636,11 +591,6 @@ struct is_trivially_destructible<boost::container::dtl::pair<A,B> >
boost::move_detail::is_trivially_destructible<B>::value;
};
template<class A, class B>
struct is_trivially_destructible<std::pair<A,B> >
: is_trivially_destructible<boost::container::dtl::pair<A,B> >
{};
} //namespace move_detail{
template<class T>
@@ -653,11 +603,6 @@ struct has_trivial_destructor_after_move<boost::container::dtl::pair<A,B> >
boost::has_trivial_destructor_after_move<B>::value;
};
template<class A, class B>
struct has_trivial_destructor_after_move<std::pair<A,B> >
: has_trivial_destructor_after_move<boost::container::dtl::pair<A,B> >
{};
} //namespace boost {
#include <boost/container/detail/config_end.hpp>