is_unsigned_test.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // (C) Copyright John Maddock 2005.
  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. #ifdef TEST_STD
  6. # include <type_traits>
  7. #else
  8. # include <boost/type_traits/is_unsigned.hpp>
  9. #endif
  10. #include "test.hpp"
  11. #include "check_integral_constant.hpp"
  12. #include <climits>
  13. TT_TEST_BEGIN(is_signed)
  14. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<int>::value, false);
  15. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<long>::value, false);
  16. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<short>::value, false);
  17. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<signed char>::value, false);
  18. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned int>::value, true);
  19. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned long>::value, true);
  20. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned short>::value, true);
  21. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned char>::value, true);
  22. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<UDT>::value, false);
  23. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned&>::value, false);
  24. #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
  25. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned&&>::value, false);
  26. #endif
  27. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned*>::value, false);
  28. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned[2]>::value, false);
  29. #ifdef BOOST_HAS_INT128
  30. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<boost::int128_type>::value, false);
  31. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<boost::uint128_type>::value, true);
  32. #endif
  33. #if defined(CHAR_MIN)
  34. #if CHAR_MIN != 0
  35. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<char>::value, false);
  36. #else
  37. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<char>::value, true);
  38. #endif
  39. #endif
  40. #if defined(WCHAR_MIN)
  41. #if WCHAR_MIN != 0
  42. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<wchar_t>::value, false);
  43. #else
  44. BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<wchar_t>::value, true);
  45. #endif
  46. #endif
  47. TT_TEST_END