Вопросы о предложении C ++ 20 с дополнением до двух R4

Я читаю четвертую версию предложения о двух дополнениях (принятого C ++ 20), и у меня есть вопросы.

Во введении сказано:

  • Статус-кво Целочисленная арифметика со знаком в целом остается некоммутативной (хотя некоторые реализации могут гарантировать, что это так).

Действительно ли это означает «некоммутативный», как в a + b по сравнению с b + a? Или это должно читаться как «неассоциативный»?

В нем также говорится:

  • Изменение Преобразование знакового в беззнаковый всегда четко определено: результатом является уникальное значение целевого типа, совпадающее с исходным целым числом по модулю 2 ^ N.

Разве преобразование подписи в беззнаковое не было четко определено именно таким образом с незапамятных времен? Следует ли читать «преобразование из неподписанного в подписанный»?

Есть ли что-то еще в списке изменений, которое отсутствует или указано неверно?


person Nemo    schedule 20.09.2019    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что этот вопрос вряд ли будет полезен кому-либо, кроме конкретного автора рассматриваемой статьи, и даже тогда, потому что дизайн уже был принят в C ++ 20 P1236.   -  person Barry    schedule 20.09.2019
comment
Вроде да, он должен читаться как неассоциативный, а изменение было на беззнаковый-подписанный.   -  person Barry    schedule 20.09.2019
comment
Это всего лишь две опечатки ... Иногда приходится признать, что люди совершают ошибки   -  person L. F.    schedule 21.09.2019
comment
@Barry Эти Q полезны, если другие люди с таким же Q могут найти этот Q и понять, что они не одни задают эти Q.   -  person curiousguy    schedule 21.09.2019


Ответы (1)


Обратите внимание, что был принят не P0907 - это был P1236.


Или это должно читаться как неассоциативное?

да.

Должно ли это преобразование чтения из неподписанного в подписанное?

да. Если вы посмотрите на P1236R1, вы можете видеть, что правило изменилось с:

Если целевой тип беззнаковый, результирующее значение является наименьшим беззнаковым целым числом, совпадающим с исходным целым числом (по модулю 2 n, где n - количество битов, используемых для представления беззнакового типа).

Если тип назначения подписан, значение не изменяется, если оно может быть представлено в типе назначения; в противном случае значение определяется реализацией.

to:

В противном случае результатом является уникальное значение целевого типа, которое конгруэнтно исходному целому числу по модулю 2 N, где N - показатель диапазона целевого типа.

person Barry    schedule 21.09.2019