Неопределённое поведение: если про него не думаете, это не значит, что его нет
Тема неопределённого поведения (UB) в языке C++ освещается и обсуждается многие годы, но это не значит, что она исчерпала себя. Это плата, которую программисты отдают за эффективные оптимизации кода, такие как удаление ряда проверок. C++ - опасный инструмент, и не помешает лишний раз напомнить, как правильно держать его в руках. Причём с приходом инструментов вайб-кодинга ситуация, скорее всего, даже ухудшится, так как станет ещё сложнее удерживать неопределённое поведение под контролем. Обсудим эту тему, заглянув в будущее. ------------------------------------------------------------------------- Полезные ссылки из доклада: - Undefined behavior ближе, чем вы думаете: https://pvs-studio.ru/ru/blog/posts/cpp/0374/ - Ложные представления программистов о неопределённом поведении: https://pvs-studio.ru/ru/blog/posts/cpp/1024/ - Подножка для AI в виде UTF-8: https://pvs-studio.ru/ru/blog/posts/cpp/1298/ - Путеводитель C++ программиста по неопределённому поведению: https://pvs-studio.ru/ru/blog/posts/cpp/1215/ ------------------------------------------------------------------------- Примечание. Был задан вопрос про безопасные компиляторы (ГОСТ Р 71206—2024). Подробнее с этой темой можно познакомиться здесь: https://pvs-studio.ru/ru/webinar/rbpo/content/#Process12 Сделайте свой проект чистым с PVS-Studio. Месяц бесплатного использования по промокоду: https://pvs-studio.ru/training_webinar
Тема неопределённого поведения (UB) в языке C++ освещается и обсуждается многие годы, но это не значит, что она исчерпала себя. Это плата, которую программисты отдают за эффективные оптимизации кода, такие как удаление ряда проверок. C++ - опасный инструмент, и не помешает лишний раз напомнить, как правильно держать его в руках. Причём с приходом инструментов вайб-кодинга ситуация, скорее всего, даже ухудшится, так как станет ещё сложнее удерживать неопределённое поведение под контролем. Обсудим эту тему, заглянув в будущее. ------------------------------------------------------------------------- Полезные ссылки из доклада: - Undefined behavior ближе, чем вы думаете: https://pvs-studio.ru/ru/blog/posts/cpp/0374/ - Ложные представления программистов о неопределённом поведении: https://pvs-studio.ru/ru/blog/posts/cpp/1024/ - Подножка для AI в виде UTF-8: https://pvs-studio.ru/ru/blog/posts/cpp/1298/ - Путеводитель C++ программиста по неопределённому поведению: https://pvs-studio.ru/ru/blog/posts/cpp/1215/ ------------------------------------------------------------------------- Примечание. Был задан вопрос про безопасные компиляторы (ГОСТ Р 71206—2024). Подробнее с этой темой можно познакомиться здесь: https://pvs-studio.ru/ru/webinar/rbpo/content/#Process12 Сделайте свой проект чистым с PVS-Studio. Месяц бесплатного использования по промокоду: https://pvs-studio.ru/training_webinar
