1 ////////////////////////////////////////////////////////////////////////////// 2 // (C) Copyright John Maddock 2000. 3 // (C) Copyright Ion Gaztanaga 2005-2015. 4 // 5 // Distributed under the Boost Software License, Version 1.0. 6 // (See accompanying file LICENSE_1_0.txt or copy at 7 // http://www.boost.org/LICENSE_1_0.txt) 8 // 9 // See http://www.boost.org/libs/container for documentation. 10 // 11 // The alignment and Type traits implementation comes from 12 // John Maddock's TypeTraits library. 13 // 14 // Some other tricks come from Howard Hinnant's papers and StackOverflow replies 15 ////////////////////////////////////////////////////////////////////////////// 16 #ifndef BOOST_CONTAINER_CONTAINER_DETAIL_TYPE_TRAITS_HPP 17 #define BOOST_CONTAINER_CONTAINER_DETAIL_TYPE_TRAITS_HPP 18 19 #ifndef BOOST_CONFIG_HPP 20 # include <boost/config.hpp> 21 #endif 22 23 #if defined(BOOST_HAS_PRAGMA_ONCE) 24 # pragma once 25 #endif 26 27 #include <boost/move/detail/type_traits.hpp> 28 29 namespace boost { 30 namespace container { 31 namespace container_detail { 32 33 using ::boost::move_detail::is_same; 34 using ::boost::move_detail::is_different; 35 using ::boost::move_detail::is_pointer; 36 using ::boost::move_detail::add_reference; 37 using ::boost::move_detail::add_const; 38 using ::boost::move_detail::add_const_reference; 39 using ::boost::move_detail::remove_const; 40 using ::boost::move_detail::remove_reference; 41 using ::boost::move_detail::make_unsigned; 42 using ::boost::move_detail::is_floating_point; 43 using ::boost::move_detail::is_integral; 44 using ::boost::move_detail::is_enum; 45 using ::boost::move_detail::is_pod; 46 using ::boost::move_detail::is_empty; 47 using ::boost::move_detail::is_trivially_destructible; 48 using ::boost::move_detail::is_trivially_default_constructible; 49 using ::boost::move_detail::is_trivially_copy_constructible; 50 using ::boost::move_detail::is_trivially_move_constructible; 51 using ::boost::move_detail::is_trivially_copy_assignable; 52 using ::boost::move_detail::is_trivially_move_assignable; 53 using ::boost::move_detail::is_nothrow_default_constructible; 54 using ::boost::move_detail::is_nothrow_copy_constructible; 55 using ::boost::move_detail::is_nothrow_move_constructible; 56 using ::boost::move_detail::is_nothrow_copy_assignable; 57 using ::boost::move_detail::is_nothrow_move_assignable; 58 using ::boost::move_detail::is_nothrow_swappable; 59 using ::boost::move_detail::alignment_of; 60 using ::boost::move_detail::aligned_storage; 61 using ::boost::move_detail::nat; 62 using ::boost::move_detail::max_align_t; 63 64 } //namespace container_detail { 65 } //namespace container { 66 } //namespace boost { 67 68 #endif //#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_TYPE_TRAITS_HPP 69