C++26 усуває невизначену поведінку тривіальних нескінченних циклів

C++26: Trivial infinite loops are no longer undefined behaviour

Новий стандарт C++26 виправляє давню проблему, через яку тривіальні нескінченні цикли на кшталт while (true); вважалися невизначеною поведінкою і могли бути видалені компілятором. За описом автора статті, зміна за пропозицією P2809R3 замінює тіло такого циклу викликом std::this_thread::yield(), надаючи йому коректну семантику гарантії прогресу — це важливо для вбудованих систем із паттерном «зупинка при помилці». Для автономних (freestanding) реалізацій застосування цієї заміни лишається на розсуд компілятора.

Мовою оригіналу · EN

C++26 fixes a long-standing quirk where trivial infinite loops like while (true); were undefined behaviour and could be optimized away by compilers such as Clang. Based on proposal P2809R3, such loop…

Читати оригінал на Hacker News (100+ балів) →

Чому в стрічці: Технічна новина про мову програмування, помірний інтерес для tech-аудиторії без зв'язку з AI/Україною.

← Назад до стрічки