__type_max
#define __type_max(t) (__type_is_signed(t) ? __type_max_s(t) : __type_max_u(t))
#define __type_max(T) ((T)((__type_half_max(T) - 1) + __type_half_max(T)))