Загружаем изображение…

🚀 Небольшие улучшения безопасности в ядре языка C++26



🔍 Что важно: язык C++ версии 26 получает сразу несколько «малых» - но значимых - изменений, направленных на повышение безопасности кода.

🔧 Основные нововведения:

1. Запрет связывания возвращённой ссылки с временным объектом
Ранее можно было возвращать ссылку на временный объект, что приводило к висячим ссылкам и неявным ошибкам. Теперь это будет запрещено.

2. Изменение поведения при чтении неинициализированных значений
В C++23 чтение неинициализированной переменной = неопределённое поведение. В C++26 такие случаи станут ошибками.

- При этом для экспертных случаев остаётся атрибут [[indeterminate]], который позволяет отключать полную инициализацию, когда это оправдано.

3. Удаление указателя на неполный тип становится ill-formed
Если тип неполон и у него не тривиальный деструктор или перегружен operator delete, то delete ptr; будет вызывать ошибку компиляции.

🎯 Важно:

- Повышает общую надёжность и безопасность кода.
- Улучшает диагностику ошибок на уровне языка, не только по статическому анализу.
- Упрощает корректное использование памяти и типов.
- Особенно актуально для больших и долгоживущих проектов на C++.

📌 Что делать:

- Проверить свой код на случаи возврата ссылок на временные объекты.
- Убедиться, что не читаются неинициализированные переменные - либо использовать [[indeterminate]] там, где это оправдано.
- Проверить конструкции delete на указателях на неполные типы.
- Следить за компиляторами и настройками: когда C++26-поддержка станет доступной, и начать адаптацию.

https://www.modernescpp.com/index.php/small-safety-improvements-in-the-c-26-core-language/

#cpp #programming

👉 @cpp_lib
Просмотры: 4 369
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти