Экскурс в неопределенное поведение C++
Книга представляет собой обширный справочник типичных и редко встречающихся ошибок, характерных для программ на C++, Rust и других языках низкоуровневого и системного программирования, включая ассемблер. Основное внимание уделяется неопределенному, неуточненному и определяемому реализацией поведению языковых конструкций.
Рассматриваются такие темы, как переполнение целых знаковых чисел, сужающие преобразования, проблемы с типами char и числами с плавающей точкой. Отдельные главы посвящены нарушению жизненного цикла объектов, висячим ссылкам, use-after-free, а также специфическим проблемам C++: std::string_view, инвалидация ссылок в std::vector, списки захвата лямбда-функций и proxy-объекты.
Книга содержит практические методы поиска, диагностики и устранения неопределенного поведения. Предназначена для специалистов по C++ и другим языкам системного и низкоуровневого программирования, желающих глубже понять тонкости работы с памятью и избежать критических ошибок.
