Юрий Грибов - Как правильно писать компараторы
HTML-код
- Опубликовано: 5 окт 2024
- Подробнее о конференции C++ Russia: jrg.su/W8skjE
- -
Один из малоизвестных примеров undefined behavior в C/C++ это нарушение требований к функциям сравнения (компараторам). Компараторы широко используются в алгоритмах (std::sort, std::binary_search, и т.д.) и контейнерах (std::set, std::map) и встречаются как в C++, так и в C (qsort, bsearch). Компараторы должны удовлетворять некоторым аксиомам, которые в математике описываются понятием строгого слабого порядка (strict weak ordering). Эти аксиомы не интуитивны и в них легко ошибиться, о чем свидетельствует большое количество соответствующих багов в open source проектах. Современные тулчейны предоставляют средства для отслеживания таких ошибок. О них рассказано в докладе Юрия.
Скачать презентацию с сайта С++ Russia - jrg.su/ZakowR
Очень хороший и понятный доклад. Спасибо
хороший доклад!! Мелочи - наше все и пока неистребимо
Казалось бы простая тема, но как обычно - легко допустить ошибку. Спасибо за доклад :)
прекрасный доклад
Спасибо за доклад!
Как сравнивать числа с погрешностью? Не делайте так! Красава
К сожалению ничего другого здесь не посоветуешь - приближённые сравнения никак нельзя исправить, они в любом случае будут нарушать аксиомы.
Извините, но по факту ни о чем