ny_quant: (Default)
ny_quant ([personal profile] ny_quant) wrote2011-07-14 10:56 pm

Promotion

Я щетаю, promotion должен быть либо самоочевидным и безопасным, либо никаким вообще.

int -> long // ok
long -> double // ok
unsigned int -> int // низя
int -> unsigned int // тоже низя

О чем думали?

[identity profile] cema.livejournal.com 2011-07-15 04:06 am (UTC)(link)
Но ведь очевидно почему, разве нет?

[identity profile] ny-quant.livejournal.com 2011-07-15 12:22 pm (UTC)(link)
Нет, неочевидно.

[identity profile] ticklish-frog.livejournal.com 2011-07-18 07:32 pm (UTC)(link)
А я бы и long -> double запретил. На основании того, что long может с прогрессом процессоров так разрастись, что не поместится в мантиссу double.

[identity profile] ny-quant.livejournal.com 2011-07-18 10:23 pm (UTC)(link)
Тоже правда.

А вот говорят, что я чего-то не понимаю.

[identity profile] nlothik.livejournal.com 2011-07-19 12:55 pm (UTC)(link)
А мне как-то не понятно, что тут не так. long -> double разве что я бы поостерёгся делать, а что такого в запрете делать из беззнаковой знаковую и наоборот?

[identity profile] ny-quant.livejournal.com 2011-07-19 02:29 pm (UTC)(link)
Что будет, если значение беззнаковой переменной больше максимума, дозволяемого знаковой? Что будет если знаковую с отрицательным значением присвоить в беззнаковую?

[identity profile] nlothik.livejournal.com 2011-07-19 02:42 pm (UTC)(link)
Всё правильно -- мне и неясно, что не так с _запретом_ на такое преобразование типов. Правильно запретили.

Или я неправильно понял, и на самом деле так *можно* и предлагается запретить? Тогда справедливо!

[identity profile] ny-quant.livejournal.com 2011-07-19 07:29 pm (UTC)(link)
На самом деле так можно, но я бы запретил.

[identity profile] blue-slonopotam.livejournal.com 2011-08-10 05:50 am (UTC)(link)
тогда нельзя конвертировать из целого в плавающее с мантиссой меньше разрядности исходного целого. т.е. лонг в дабл низя.

[identity profile] ny-quant.livejournal.com 2011-08-11 12:02 am (UTC)(link)
Да, верно.