Вопросы о C ++ 20 два дополнения предложение R4 - PullRequest
7 голосов
/ 20 сентября 2019

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

Во введении говорится:

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

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

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

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

Разве преобразование со знаком в без знака не было четко определено именно таким образом с начала времен?Должно ли это читаться как «преобразование из неподписанного в подписанное»?

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

1 Ответ

1 голос
/ 21 сентября 2019

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

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

Да.

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

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

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

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

до:

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

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