Привет, чят!
В общем, сабж. Начиная с 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








