int_literals.cpp 913 B

1234567891011121314151617181920212223242526
  1. #include <cassert>
  2. #include <iostream>
  3. #include "simple/support/int_literals.hpp"
  4. using namespace simple::support::literals;
  5. int main()
  6. {
  7. static_assert(std::is_same_v<decltype(123_u8), uint8_t>);
  8. static_assert(std::is_same_v<decltype(123_u16), uint16_t>);
  9. static_assert(std::is_same_v<decltype(123_u32), uint32_t>);
  10. static_assert(std::is_same_v<decltype(123_u64), uint64_t>);
  11. static_assert(std::is_same_v<decltype(123_uch), unsigned char>);
  12. static_assert(std::is_same_v<decltype(123_ush), unsigned short>);
  13. static_assert(128_u8 == uint8_t{128});
  14. static_assert(0177777_u16 == uint16_t{0177777});
  15. static_assert(0xffff'ffff_u32 == uint32_t{0xffff'ffff});
  16. static_assert(0x1'0000'0000_u64 == uint64_t{0x1'0000'0000});
  17. static_assert(0xffff'ffff'ffff'ffff_u64 == uint64_t{0xffff'ffff'ffff'ffff});
  18. static_assert(123_uch == (unsigned char)123);
  19. static_assert(123_ush == (unsigned short)123);
  20. return 0;
  21. }