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 dtl { 32 33 using ::boost::move_detail::enable_if; 34 using ::boost::move_detail::enable_if_and; 35 using ::boost::move_detail::is_same; 36 using ::boost::move_detail::is_different; 37 using ::boost::move_detail::is_pointer; 38 using ::boost::move_detail::add_reference; 39 using ::boost::move_detail::add_const; 40 using ::boost::move_detail::add_const_reference; 41 using ::boost::move_detail::remove_const; 42 using ::boost::move_detail::remove_reference; 43 using ::boost::move_detail::make_unsigned; 44 using ::boost::move_detail::is_floating_point; 45 using ::boost::move_detail::is_integral; 46 using ::boost::move_detail::is_enum; 47 using ::boost::move_detail::is_pod; 48 using ::boost::move_detail::is_empty; 49 using ::boost::move_detail::is_trivially_destructible; 50 using ::boost::move_detail::is_trivially_default_constructible; 51 using ::boost::move_detail::is_trivially_copy_constructible; 52 using ::boost::move_detail::is_trivially_move_constructible; 53 using ::boost::move_detail::is_trivially_copy_assignable; 54 using ::boost::move_detail::is_trivially_move_assignable; 55 using ::boost::move_detail::is_nothrow_default_constructible; 56 using ::boost::move_detail::is_nothrow_copy_constructible; 57 using ::boost::move_detail::is_nothrow_move_constructible; 58 using ::boost::move_detail::is_nothrow_copy_assignable; 59 using ::boost::move_detail::is_nothrow_move_assignable; 60 using ::boost::move_detail::is_nothrow_swappable; 61 using ::boost::move_detail::alignment_of; 62 using ::boost::move_detail::aligned_storage; 63 using ::boost::move_detail::nat; 64 using ::boost::move_detail::nat2; 65 using ::boost::move_detail::nat3; 66 using ::boost::move_detail::max_align_t; 67 68 } //namespace dtl { 69 } //namespace container { 70 } //namespace boost { 71 72 #endif //#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_TYPE_TRAITS_HPP 73