#define IS_UNSIGNED(t) \
    _Generic((t), \
             uint8_t: true, \
             uint16_t: true, \
             uint32_t: true, \
             uint64_t: true, \
             unsigned long long: true, \
             int8_t: false, \
             int16_t: false, \
             int32_t: false, \
             int64_t: false, \
             signed long long: false)
