mirror of
https://github.com/boostorg/container.git
synced 2026-02-23 15:42:17 +00:00
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:
@@ -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]
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user