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