boost_no_cxx11_hdr_type_traits.ipp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. // (C) Copyright Beman Dawes 2009
  2. // Use, modification and distribution are subject to the
  3. // Boost Software License, Version 1.0. (See accompanying file
  4. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. // See http://www.boost.org/libs/config for more information.
  6. // MACRO: BOOST_NO_CXX11_HDR_TYPE_TRAITS
  7. // TITLE: C++0x header <type_traits> unavailable
  8. // DESCRIPTION: The standard library does not supply C++0x header <type_traits>
  9. #include <type_traits>
  10. namespace boost_no_cxx11_hdr_type_traits {
  11. int test()
  12. {
  13. using std::integral_constant;
  14. using std::true_type;
  15. using std::false_type;
  16. using std::is_void;
  17. using std::is_integral;
  18. using std::is_floating_point;
  19. using std::is_array;
  20. using std::is_pointer;
  21. using std::is_lvalue_reference;
  22. using std::is_rvalue_reference;
  23. using std::is_member_object_pointer;
  24. using std::is_member_function_pointer;
  25. using std::is_enum;
  26. using std::is_union;
  27. using std::is_class;
  28. using std::is_function;
  29. using std::is_reference;
  30. using std::is_arithmetic;
  31. using std::is_fundamental;
  32. using std::is_object;
  33. using std::is_scalar;
  34. using std::is_compound;
  35. using std::is_member_pointer;
  36. using std::is_const;
  37. using std::is_volatile;
  38. using std::is_trivial;
  39. using std::is_trivially_copyable;
  40. using std::is_standard_layout;
  41. using std::is_pod;
  42. #if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
  43. // deprecated in C++ 17:
  44. using std::is_literal_type;
  45. using std::result_of;
  46. #endif
  47. using std::is_empty;
  48. using std::is_polymorphic;
  49. using std::is_abstract;
  50. using std::is_constructible;
  51. using std::is_nothrow_constructible;
  52. using std::is_default_constructible;
  53. using std::is_copy_constructible;
  54. using std::is_copy_assignable;
  55. using std::is_move_constructible;
  56. using std::is_move_assignable;
  57. using std::is_destructible;
  58. using std::is_trivially_default_constructible;
  59. using std::is_trivially_copy_constructible;
  60. using std::is_trivially_move_constructible;
  61. using std::is_trivially_copy_assignable;
  62. using std::is_trivially_move_assignable;
  63. using std::is_trivially_destructible;
  64. using std::is_nothrow_default_constructible;
  65. using std::is_nothrow_copy_constructible;
  66. using std::is_nothrow_move_constructible;
  67. using std::is_nothrow_copy_assignable;
  68. using std::is_nothrow_move_assignable;
  69. using std::has_virtual_destructor;
  70. using std::is_signed;
  71. using std::is_unsigned;
  72. using std::alignment_of;
  73. using std::rank;
  74. using std::extent;
  75. using std::is_same;
  76. using std::is_base_of;
  77. using std::is_convertible;
  78. using std::remove_const;
  79. using std::remove_volatile;
  80. using std::remove_cv;
  81. using std::add_const;
  82. using std::add_volatile;
  83. using std::add_cv;
  84. using std::remove_reference;
  85. using std::add_lvalue_reference;
  86. using std::add_rvalue_reference;
  87. using std::make_signed;
  88. using std::make_unsigned;
  89. using std::remove_extent;
  90. using std::remove_all_extents;
  91. using std::remove_pointer;
  92. using std::add_pointer;
  93. using std::aligned_storage;
  94. using std::aligned_union;
  95. using std::decay;
  96. using std::enable_if;
  97. using std::conditional;
  98. using std::common_type;
  99. using std::underlying_type;
  100. return 0;
  101. }
  102. }