C++26, 마침내 `while(true);` 무한 루프를 정의된 동작으로 만들다
C++26: Trivial infinite loops are no longer undefined behaviour
C++26부터 `while(true);` 같은 자명한 무한 루프가 더 이상 미정의 동작이 아니다. 과거에는 컴파일러가 루프가 종료된다고 가정하고 최적화로 제거해 임베디드 시스템에서 치명적 오류 핸들러가 제대로 멈추지 않는 문제가 있었다. P2809R3는 루프 본문을 `std::this_thread::yield()` 호출로 대체해 전진 보장을 제공한다. 단, freestanding 환경에서는 적용 여부가 구현 정의다.
`while (1);`은 C에서는 잘 정의된 동작이었지만 C++에서는 미정의 동작이었다.