quick quiz
Nov. 16th, 2009 12:51 amвнимание, вопрос!
в каком случае сравнение if(value!=value) { throw new Exception("..."); } имеет смысл, и что скорее всего написано в том эксепшене? )
(случай реализации кастомного типа, который неправильно сравнивается - здесь не рассматривается)
Комменты скринятся.
UPD:
aruslan подумал абсолютно правильно, как человек, который видел такое в каком-то рендере (i suppose),
kodt_rsdn отжог с 5 случаями, из которых я при написании поста знал только 4 (# как-то в голову не пришло). кстати, на второй случай я натыкался, даже без модификатора. Подожду еще несколько комментаторов и расскриню.
Ну и еще: kodt_rsdn> проведи конкурс на самый банальный и небанальный вариант.
UPD2: в общем, я думаю, что все кто хотел - уже ответили, посему расскриниваю. Самым банальным вариантом остается, как я и думал, фрагмент IEEE754 про сравнение NaN != NaN, a самым неожиданным (для меня) - #define value rand() (надо меньше доверять людям, что ли? :))
И еще, мне все так же остается загадкой, что подразумевал
aruslan под "тривиальным bool и может быть enum".
Спасибо всем за ответы! :) // mr_aleph, твой коммент расскринивать?
no subject
Date: 2009-11-16 02:26 pm (UTC)no subject
Date: 2009-11-16 02:28 pm (UTC)no subject
Date: 2009-11-16 02:39 pm (UTC)Если это floating point, какая разница, v!=v, или v!=w?
Это вопрос намордника, не NaNов.
no subject
Date: 2009-11-16 02:41 pm (UTC)no subject
Date: 2009-11-16 02:45 pm (UTC)no subject
Date: 2009-11-16 02:49 pm (UTC)Вон можно на 0 проверить, для того чтобы не делить лишний раз на него: foo == 0. И ничё, никаких эпсилонов не надо придумывать.
no subject
Date: 2009-11-16 02:54 pm (UTC)no subject
Date: 2009-11-16 02:45 pm (UTC)Сравнимость выражений - вопрос намордника и оптимизатора.
Странно слышать, что это - миф.
no subject
Date: 2009-11-16 02:50 pm (UTC)no subject
Date: 2009-11-16 03:10 pm (UTC)Могу себе представить неустойчивые методы, где проблему замазывают эпсилонами, видимо k-порядка.
Я про прозаический спиллинг и прочие не вполне эффективно выразимые в типах проблемы.