diff options
Diffstat (limited to 'boost/container/detail/pair.hpp')
-rw-r--r-- | boost/container/detail/pair.hpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/boost/container/detail/pair.hpp b/boost/container/detail/pair.hpp index 6b00db1483..9cca9f6ba8 100644 --- a/boost/container/detail/pair.hpp +++ b/boost/container/detail/pair.hpp @@ -550,6 +550,61 @@ struct is_class< std::pair<T1, T2> > static const bool value = true; }; + +//Triviality of pair +template<class T> +struct is_trivially_copy_constructible; + +template<class A, class B> +struct is_trivially_copy_assignable + <boost::container::dtl::pair<A,B> > +{ + static const bool value = boost::move_detail::is_trivially_copy_assignable<A>::value && + boost::move_detail::is_trivially_copy_assignable<B>::value ; +}; + +template<class T> +struct is_trivially_move_constructible; + +template<class A, class B> +struct is_trivially_move_assignable + <boost::container::dtl::pair<A,B> > +{ + static const bool value = boost::move_detail::is_trivially_move_assignable<A>::value && + boost::move_detail::is_trivially_move_assignable<B>::value ; +}; + +template<class T> +struct is_trivially_copy_assignable; + +template<class A, class B> +struct is_trivially_copy_constructible<boost::container::dtl::pair<A,B> > +{ + static const bool value = boost::move_detail::is_trivially_copy_constructible<A>::value && + boost::move_detail::is_trivially_copy_constructible<B>::value ; +}; + +template<class T> +struct is_trivially_move_assignable; + +template<class A, class B> +struct is_trivially_move_constructible<boost::container::dtl::pair<A,B> > +{ + static const bool value = boost::move_detail::is_trivially_move_constructible<A>::value && + boost::move_detail::is_trivially_move_constructible<B>::value ; +}; + +template<class T> +struct is_trivially_destructible; + +template<class A, class B> +struct is_trivially_destructible<boost::container::dtl::pair<A,B> > +{ + static const bool value = boost::move_detail::is_trivially_destructible<A>::value && + boost::move_detail::is_trivially_destructible<B>::value ; +}; + + } //namespace move_detail{ } //namespace boost { |