Привет, чят!
В общем, сабж. Начиная с C++26 тривиальные бесконечные циклы больше не будут неопределённым поведением.
Пример такого цикла:
int main() {
while(true) ;
}
При этом, если в теле цикла содержится выражение или условие цикла не является константным выражением, приводимым к true, то такой цикл всё ещё будет вызывать неопределённое поведение программы:
int main() {
// UB
while(true) {
(void) "Hello LOR!";
}
}
int main() {
// UB
bool done = false;
while(!done) {}
}
int main() {
// Тоже UB
while (true) if constexpr (false) break;
}
И так далее. Как всегда, в C++ что-то починили, по сути ничего не починив. Так и живём, чят.
Ссылка с подробностями: https://www.sandordargo.com/blog/2026/09/16/cpp26-trivial-infinite-loops
c++, undefined behaviour, страдания
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | [Перевод] Доверьтесь компилятору: C++23 против трюков из 90-х | 0 | 10.4 | 27-07-2026 |
| 2 | [Перевод] Доверьтесь компилятору: C++23 против трюков из 90-х | 0 | 10.4 | 27-07-2026 |
| 3 | С++: Пиши, сокращай, оптимизируй | 0 | 10.41 | 23-07-2026 |
| 4 | С++: Пиши, сокращай, оптимизируй | 0 | 10.41 | 23-07-2026 |
| 5 | const fn в 2026: ваш компилятор втихаря исполняет Rust | 0 | 9.58 | 20-07-2026 |
| 6 | Почему C++ или Rust никогда не смогут заменить Python | -1 | 5.93 | 28-07-2026 |
| 7 | std::expected в C++23: гайд по миграции с исключений на функциональный error handling | 0 | 7 | 07-07-2026 |
| 8 | Книга: «100 ошибок C++ и как их избежать» | 0 | 7.01 | 03-06-2026 |
| 9 | Опухший C++ код | 0 | 8.62 | 19-08-2026 |