• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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