Обзор книги, известной под неофициальным названием "ubbook", раскрывает глубокие аспекты неопределенного поведения в C++. Материал предназначен для опытных C++ разработчиков, а не для новичков.
В 12 главах подробно рассмотрены сложные темы, начиная от неочевидных преобразований типов и переполнения целых чисел до проблем с висячими ссылками, лямбда-захватами и семантикой перемещения. Отдельное внимание уделяется тонкостям работы с памятью, включая использование
Книга также затрагивает такие специфические проблемы, как ложный noexcept, нарушения ODR, статический порядок инициализации, разыменование нулевых указателей,
Автор, имеющий многолетний опыт в разработке высокопроизводительного ПО, подробно рассматривает практические аспекты неопределенного поведения, предостерегая от потенциальных ошибок, и предоставляет ценные знания для написания надёжного и безопасного кода.
Изображение носит иллюстративный характер
В 12 главах подробно рассмотрены сложные темы, начиная от неочевидных преобразований типов и переполнения целых чисел до проблем с висячими ссылками, лямбда-захватами и семантикой перемещения. Отдельное внимание уделяется тонкостям работы с памятью, включая использование
std::vector
, shared_ptr
, и placement new
, а также вопросам многопоточности и сигнальной безопасности. Книга также затрагивает такие специфические проблемы, как ложный noexcept, нарушения ODR, статический порядок инициализации, разыменование нулевых указателей,
iostreams
, оператор запятая, и VLA. Обсуждаются невыровненные ссылки, тривиальные типы и ABI, неинициализированные переменные, а также особенности новых возможностей C++20. Автор, имеющий многолетний опыт в разработке высокопроизводительного ПО, подробно рассматривает практические аспекты неопределенного поведения, предостерегая от потенциальных ошибок, и предоставляет ценные знания для написания надёжного и безопасного кода.