Теперь мы знаем, что стандарт оставляет это до реализации.
Но как проверить тип signed
или unsigned
, например char
?
Я написал макрос для этого:
#define IS_UNSIGNED(t) ((t)~1 > 0)
и проверьте его с помощью gcc
, clang
и cl
. Но я не уверен, что это всегда безопасно для других случаев.