P1236R1: Почему стандарт c ++ пытается отойти от слова «бит» при определении целых чисел? - PullRequest
0 голосов
/ 13 февраля 2019

Согласно P1236R1 , теперь целочисленные типы определяются числами, а не битами.

type    minimum range exponent N
signed char     8
short          16
int            16
long           32
long long      64

Вместо определения значения "бит", которое стандарт все ещев отсутствие C ++ предпочитает этого не делать, но вместо этого определяет эти типы в терминах range exponent.

Почему?
Почему лучше не зависеть от слова "бит"?
Что такое"ненаблюдаемые биты" в этом предложении?

P1236R1 является частью C ++ 20

1 Ответ

0 голосов
/ 13 февраля 2019

В соответствии с правилами ISO обсуждения комитета ISO C ++ являются закрытыми и не могут передаваться сообществу программистов в целом.Комитет опубликовал следующую информацию по этому вопросу ( выпуск 1857 ):

Примечания к июньскому совещанию 2014 года:

CWG решила переформулировать описание самих операций, чтобы избежать ссылок на биты, отделив более крупные вопросы определения «бит» и т. П. Для выпуска 1943 для дальнейшего рассмотрения.

Выпуск 1861 содержит аналогичный язык.

Я не присутствовал на этом совещании, но бит уже имеет определение в ИСО / МЭК 2382 (которое является нормативной ссылкойстандарта C ++):

бит

двоичная цифра

любая из цифр 0 или 1 при использовании в двоичной системе

Это определение явно неприемлемо для многих потенциальных применений в стандартах C ++, таких как речь о знаковом бите (который подразумевает бит в определенной позиции в типе / слове)или ширина (вбиты) целочисленного типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...