remove_cv_ref_test.cpp 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. // (C) Copyright John Maddock 2000.
  2. // (C) Copyright Peter Dimov 2017.
  3. // Use, modification and distribution are subject to the
  4. // Boost Software License, Version 1.0. (See accompanying file
  5. // LICENSE_1_0.txt or copy at http://www.tt.org/LICENSE_1_0.txt)
  6. #ifdef TEST_STD
  7. # include <type_traits>
  8. #else
  9. # include <boost/type_traits/remove_cv_ref.hpp>
  10. #endif
  11. #include "test.hpp"
  12. #include "check_type.hpp"
  13. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_1, ::tt::remove_cv_ref, const)
  14. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_2, ::tt::remove_cv_ref, volatile)
  15. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_3, ::tt::remove_cv_ref, const volatile)
  16. BOOST_DECL_TRANSFORM_TEST0(remove_cv_ref_test_4, ::tt::remove_cv_ref)
  17. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_5, ::tt::remove_cv_ref, const &)
  18. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_6, ::tt::remove_cv_ref, volatile &)
  19. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_7, ::tt::remove_cv_ref, const volatile &)
  20. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_8, ::tt::remove_cv_ref, &)
  21. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  22. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_9, ::tt::remove_cv_ref, const &&)
  23. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_10, ::tt::remove_cv_ref, volatile &&)
  24. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_11, ::tt::remove_cv_ref, const volatile &&)
  25. BOOST_DECL_TRANSFORM_TEST3(remove_cv_ref_test_12, ::tt::remove_cv_ref, &&)
  26. #endif
  27. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_13, ::tt::remove_cv_ref, *const, *)
  28. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_14, ::tt::remove_cv_ref, *volatile, *)
  29. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_15, ::tt::remove_cv_ref, *const volatile, *)
  30. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_16, ::tt::remove_cv_ref, *, *)
  31. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_17, ::tt::remove_cv_ref, *const &, *)
  32. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_18, ::tt::remove_cv_ref, *volatile &, *)
  33. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_19, ::tt::remove_cv_ref, *const volatile &, *)
  34. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_20, ::tt::remove_cv_ref, * &, *)
  35. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  36. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_21, ::tt::remove_cv_ref, *const &&, *)
  37. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_22, ::tt::remove_cv_ref, *volatile &&, *)
  38. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_23, ::tt::remove_cv_ref, *const volatile &&, *)
  39. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_24, ::tt::remove_cv_ref, * &&, *)
  40. #endif
  41. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_25, ::tt::remove_cv_ref, const*, const*)
  42. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_26, ::tt::remove_cv_ref, volatile*, volatile*)
  43. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_27, ::tt::remove_cv_ref, const*const, const*)
  44. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_28, ::tt::remove_cv_ref, const*volatile, const*)
  45. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_29, ::tt::remove_cv_ref, const* &, const*)
  46. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_30, ::tt::remove_cv_ref, volatile* &, volatile*)
  47. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_31, ::tt::remove_cv_ref, const*const &, const*)
  48. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_32, ::tt::remove_cv_ref, const*volatile &, const*)
  49. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  50. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_33, ::tt::remove_cv_ref, const* &&, const*)
  51. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_34, ::tt::remove_cv_ref, volatile* &&, volatile*)
  52. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_35, ::tt::remove_cv_ref, const*const &&, const*)
  53. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_36, ::tt::remove_cv_ref, const*volatile &&, const*)
  54. #endif
  55. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_37, ::tt::remove_cv_ref, const[2], [2])
  56. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_38, ::tt::remove_cv_ref, volatile[2], [2])
  57. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_39, ::tt::remove_cv_ref, const volatile[2], [2])
  58. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_40, ::tt::remove_cv_ref, [2], [2])
  59. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_41, ::tt::remove_cv_ref, const(&)[2], [2])
  60. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_42, ::tt::remove_cv_ref, volatile(&)[2], [2])
  61. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_43, ::tt::remove_cv_ref, const volatile(&)[2], [2])
  62. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_44, ::tt::remove_cv_ref, (&)[2], [2])
  63. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  64. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_45, ::tt::remove_cv_ref, const(&&)[2], [2])
  65. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_46, ::tt::remove_cv_ref, volatile(&&)[2], [2])
  66. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_47, ::tt::remove_cv_ref, const volatile(&&)[2], [2])
  67. BOOST_DECL_TRANSFORM_TEST(remove_cv_ref_test_48, ::tt::remove_cv_ref, (&&)[2], [2])
  68. #endif
  69. TT_TEST_BEGIN(remove_cv_ref)
  70. remove_cv_ref_test_1();
  71. remove_cv_ref_test_2();
  72. remove_cv_ref_test_3();
  73. remove_cv_ref_test_4();
  74. remove_cv_ref_test_5();
  75. remove_cv_ref_test_6();
  76. remove_cv_ref_test_7();
  77. remove_cv_ref_test_8();
  78. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  79. remove_cv_ref_test_9();
  80. remove_cv_ref_test_10();
  81. remove_cv_ref_test_11();
  82. remove_cv_ref_test_12();
  83. #endif
  84. remove_cv_ref_test_13();
  85. remove_cv_ref_test_14();
  86. remove_cv_ref_test_15();
  87. remove_cv_ref_test_16();
  88. remove_cv_ref_test_17();
  89. remove_cv_ref_test_18();
  90. remove_cv_ref_test_19();
  91. remove_cv_ref_test_20();
  92. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  93. remove_cv_ref_test_21();
  94. remove_cv_ref_test_22();
  95. remove_cv_ref_test_23();
  96. remove_cv_ref_test_24();
  97. #endif
  98. remove_cv_ref_test_25();
  99. remove_cv_ref_test_26();
  100. remove_cv_ref_test_27();
  101. remove_cv_ref_test_28();
  102. remove_cv_ref_test_29();
  103. remove_cv_ref_test_30();
  104. remove_cv_ref_test_31();
  105. remove_cv_ref_test_32();
  106. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  107. remove_cv_ref_test_33();
  108. remove_cv_ref_test_34();
  109. remove_cv_ref_test_35();
  110. remove_cv_ref_test_36();
  111. #endif
  112. remove_cv_ref_test_37();
  113. remove_cv_ref_test_38();
  114. remove_cv_ref_test_39();
  115. remove_cv_ref_test_40();
  116. remove_cv_ref_test_41();
  117. remove_cv_ref_test_42();
  118. remove_cv_ref_test_43();
  119. remove_cv_ref_test_44();
  120. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  121. remove_cv_ref_test_45();
  122. remove_cv_ref_test_46();
  123. remove_cv_ref_test_47();
  124. remove_cv_ref_test_48();
  125. #endif
  126. TT_TEST_END