stdint.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include<__vic/stdint.h>
  2. #include<iostream>
  3. #include<exception>
  4. #include<cassert>
  5. void run_tests()
  6. {
  7. assert(sizeof(int8_t) == 1);
  8. assert(sizeof(int16_t) == 2);
  9. assert(sizeof(int32_t) == 4);
  10. assert(sizeof(int64_t) == 8);
  11. assert(sizeof(uint8_t) == 1);
  12. assert(sizeof(uint16_t) == 2);
  13. assert(sizeof(uint32_t) == 4);
  14. assert(sizeof(uint64_t) == 8);
  15. assert(sizeof(int_least8_t) >= 1);
  16. assert(sizeof(int_least16_t) >= 2);
  17. assert(sizeof(int_least32_t) >= 4);
  18. assert(sizeof(int_least64_t) >= 8);
  19. assert(sizeof(uint_least8_t) >= 1);
  20. assert(sizeof(uint_least16_t) >= 2);
  21. assert(sizeof(uint_least32_t) >= 4);
  22. assert(sizeof(uint_least64_t) >= 8);
  23. assert(sizeof(int_fast8_t) >= 1);
  24. assert(sizeof(int_fast16_t) >= 2);
  25. assert(sizeof(int_fast32_t) >= 4);
  26. assert(sizeof(int_fast64_t) >= 8);
  27. assert(sizeof(uint_fast8_t) >= 1);
  28. assert(sizeof(uint_fast16_t) >= 2);
  29. assert(sizeof(uint_fast32_t) >= 4);
  30. assert(sizeof(uint_fast64_t) >= 8);
  31. (void) intmax_t(0);
  32. (void)uintmax_t(0);
  33. (void) intptr_t(0);
  34. (void)uintptr_t(0);
  35. assert(sizeof(__vic::int_exactly_bytes<1>::type) == 1);
  36. assert(sizeof(__vic::int_exactly_bytes<2>::type) == 2);
  37. assert(sizeof(__vic::int_exactly_bytes<4>::type) == 4);
  38. assert(sizeof(__vic::int_exactly_bytes<8>::type) == 8);
  39. assert(sizeof(__vic::uint_exactly_bytes<1>::type) == 1);
  40. assert(sizeof(__vic::uint_exactly_bytes<2>::type) == 2);
  41. assert(sizeof(__vic::uint_exactly_bytes<4>::type) == 4);
  42. assert(sizeof(__vic::uint_exactly_bytes<8>::type) == 8);
  43. typedef
  44. #if __cpp_alias_templates
  45. __vic::int_exact_bytes<sizeof(void*)>
  46. #else
  47. __vic::int_exactly_bytes<sizeof(void*)>::type
  48. #endif
  49. my_intptr_t;
  50. assert(sizeof(void*) == sizeof(my_intptr_t));
  51. }
  52. int main()
  53. {
  54. try
  55. {
  56. run_tests();
  57. return 0;
  58. }
  59. catch(const std::exception &ex)
  60. {
  61. std::cerr << ex.what() << '\n';
  62. }
  63. return 1;
  64. }