From 4faa05e36c911d88dbe7b5a2cfcfd07fc6f40233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Sat, 16 Jun 2018 14:45:20 +0200 Subject: [PATCH] More traits to support additional triviality for pair. --- include/boost/container/detail/pair.hpp | 47 +++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/include/boost/container/detail/pair.hpp b/include/boost/container/detail/pair.hpp index e1df18c..9cca9f6 100644 --- a/include/boost/container/detail/pair.hpp +++ b/include/boost/container/detail/pair.hpp @@ -550,6 +550,11 @@ struct is_class< std::pair > static const bool value = true; }; + +//Triviality of pair +template +struct is_trivially_copy_constructible; + template struct is_trivially_copy_assignable > @@ -558,6 +563,48 @@ struct is_trivially_copy_assignable boost::move_detail::is_trivially_copy_assignable::value ; }; +template +struct is_trivially_move_constructible; + +template +struct is_trivially_move_assignable + > +{ + static const bool value = boost::move_detail::is_trivially_move_assignable::value && + boost::move_detail::is_trivially_move_assignable::value ; +}; + +template +struct is_trivially_copy_assignable; + +template +struct is_trivially_copy_constructible > +{ + static const bool value = boost::move_detail::is_trivially_copy_constructible::value && + boost::move_detail::is_trivially_copy_constructible::value ; +}; + +template +struct is_trivially_move_assignable; + +template +struct is_trivially_move_constructible > +{ + static const bool value = boost::move_detail::is_trivially_move_constructible::value && + boost::move_detail::is_trivially_move_constructible::value ; +}; + +template +struct is_trivially_destructible; + +template +struct is_trivially_destructible > +{ + static const bool value = boost::move_detail::is_trivially_destructible::value && + boost::move_detail::is_trivially_destructible::value ; +}; + + } //namespace move_detail{ } //namespace boost {