cxx14_aliases_test.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright Peter Dimov 2017
  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.tt.org/LICENSE_1_0.txt)
  5. #ifdef TEST_STD
  6. # include <type_traits>
  7. #else
  8. # include <boost/type_traits.hpp>
  9. #endif
  10. #include "test.hpp"
  11. #include "check_type.hpp"
  12. #include <iostream>
  13. TT_TEST_BEGIN(cxx14_aliases_test)
  14. {
  15. #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
  16. BOOST_CHECK_TYPE(tt::add_const_t<int>, int const);
  17. BOOST_CHECK_TYPE(tt::add_cv_t<int>, int const volatile);
  18. BOOST_CHECK_TYPE(tt::add_lvalue_reference_t<int>, int&);
  19. BOOST_CHECK_TYPE(tt::add_pointer_t<int>, int*);
  20. BOOST_CHECK_TYPE(tt::add_rvalue_reference_t<int>, int&&);
  21. BOOST_CHECK_TYPE(tt::add_volatile_t<int>, int volatile);
  22. BOOST_CHECK_TYPE3(tt::common_type_t<char, short>, int);
  23. BOOST_CHECK_TYPE4(tt::conditional_t<true, char, short>, char);
  24. BOOST_CHECK_TYPE4(tt::conditional_t<false, char, short>, short);
  25. BOOST_CHECK_TYPE3(tt::copy_cv_t<char, short const volatile>, char const volatile);
  26. BOOST_CHECK_TYPE(tt::decay_t<char const(&)[7]>, char const*);
  27. BOOST_CHECK_TYPE(tt::make_signed_t<unsigned char>, signed char);
  28. BOOST_CHECK_TYPE(tt::make_unsigned_t<signed char>, unsigned char);
  29. BOOST_CHECK_TYPE(tt::remove_all_extents_t<int[][10][20]>, int);
  30. BOOST_CHECK_TYPE(tt::remove_const_t<int const>, int);
  31. BOOST_CHECK_TYPE(tt::remove_cv_t<int const volatile>, int);
  32. BOOST_CHECK_TYPE(tt::remove_extent_t<int[]>, int);
  33. BOOST_CHECK_TYPE(tt::remove_pointer_t<int*>, int);
  34. BOOST_CHECK_TYPE(tt::remove_reference_t<int&>, int);
  35. BOOST_CHECK_TYPE(tt::remove_volatile_t<int volatile>, int);
  36. BOOST_CHECK_TYPE(tt::floating_point_promotion_t<float>, double);
  37. BOOST_CHECK_TYPE(tt::integral_promotion_t<char>, int);
  38. BOOST_CHECK_TYPE(tt::promote_t<char>, int);
  39. #endif
  40. }
  41. TT_TEST_END