Доклад
Как правильно писать компараторы
Один из малоизвестных примеров undefined behavior в C/C++ это нарушение требований к функциям сравнения (компараторам). Компараторы широко используются в алгоритмах (std::sort
, std::binary_search
, и т.д.) и контейнерах (std::set
, std::map
) и встречаются как в C++, так и в C (qsort
, bsearch
). Компараторы должны удовлетворять некоторым аксиомам, которые в математике описываются понятием строгого слабого порядка (strict weak ordering). Эти аксиомы не интуитивны и в них легко ошибиться, о чем свидетельствует большое количество соответствующих багов в open source проектах. Современные тулчейны предоставляют средства для отслеживания таких ошибок. О них и будет рассказано в докладе Юрия.
Спикеры
Приглашенные эксперты
Максим Кита
Компания: Яндекс