type_traits.hpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. #ifndef BOOST_CONFIG_HPP
  19. # include <boost/config.hpp>
  20. #endif
  21. #if defined(BOOST_HAS_PRAGMA_ONCE)
  22. # pragma once
  23. #endif
  24. #include <boost/move/detail/type_traits.hpp>
  25. namespace boost {
  26. namespace container {
  27. namespace dtl {
  28. using ::boost::move_detail::enable_if;
  29. using ::boost::move_detail::enable_if_and;
  30. using ::boost::move_detail::is_same;
  31. using ::boost::move_detail::is_different;
  32. using ::boost::move_detail::is_pointer;
  33. using ::boost::move_detail::add_reference;
  34. using ::boost::move_detail::add_const;
  35. using ::boost::move_detail::add_const_reference;
  36. using ::boost::move_detail::remove_const;
  37. using ::boost::move_detail::remove_reference;
  38. using ::boost::move_detail::make_unsigned;
  39. using ::boost::move_detail::is_floating_point;
  40. using ::boost::move_detail::is_integral;
  41. using ::boost::move_detail::is_enum;
  42. using ::boost::move_detail::is_pod;
  43. using ::boost::move_detail::is_empty;
  44. using ::boost::move_detail::is_trivially_destructible;
  45. using ::boost::move_detail::is_trivially_default_constructible;
  46. using ::boost::move_detail::is_trivially_copy_constructible;
  47. using ::boost::move_detail::is_trivially_move_constructible;
  48. using ::boost::move_detail::is_trivially_copy_assignable;
  49. using ::boost::move_detail::is_trivially_move_assignable;
  50. using ::boost::move_detail::is_nothrow_default_constructible;
  51. using ::boost::move_detail::is_nothrow_copy_constructible;
  52. using ::boost::move_detail::is_nothrow_move_constructible;
  53. using ::boost::move_detail::is_nothrow_copy_assignable;
  54. using ::boost::move_detail::is_nothrow_move_assignable;
  55. using ::boost::move_detail::is_nothrow_swappable;
  56. using ::boost::move_detail::alignment_of;
  57. using ::boost::move_detail::aligned_storage;
  58. using ::boost::move_detail::nat;
  59. using ::boost::move_detail::nat2;
  60. using ::boost::move_detail::nat3;
  61. using ::boost::move_detail::max_align_t;
  62. } //namespace dtl {
  63. } //namespace container {
  64. } //namespace boost {
  65. #endif //#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_TYPE_TRAITS_HPP