LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

например, что делает битовый сдвиг влево при shift_amount >= bit_width

То, что указано в реализации трейта std::ops::Shl для заданного типа. Возвращает для типа T значение типа Shl<T>::Output.

Для стандартных типов поведение описано в https://github.com/rust-lang/rfcs/blob/master/text/0560-integer-overflow.md

А из стандарта Си можно понять — это undefined behavior.

А из документации Rust можно понять, что там нет undefined behavior.

Как из стандарта Си понять, что выведет код

int x = 40000;
if(x*2 < 0) printf("minus"); else printf("ok");

?

Исходная версия monk, :

например, что делает битовый сдвиг влево при shift_amount >= bit_width

То, что указано в реализации трейта std::ops::Shl для заданного типа. Возвращает для типа T значение типа Shl::Output.

Для стандартных типов поведение описано в https://github.com/rust-lang/rfcs/blob/master/text/0560-integer-overflow.md

А из стандарта Си можно понять — это undefined behavior.

А из документации Rust можно понять, что там нет undefined behavior.

Как из стандарта Си понять, что выведет код

int x = 40000;
if(x*2 < 0) printf("minus"); else printf("ok");

?