는 main
의이 몸을 고려해 그 잘 정의 여부에 대해랜덤 루프 종료 조건을 갖는 것이 잘 정의되어 있습니까?
std::srand(std::time(nullptr));
while (std::rand());
놀랍게도, 나는 그것이 구글에 사양에 수 있는지, 무엇을 찾거나이 웹 사이트에 없습니다. 규격에 같이
[참고 : 반복 제표 조건 요구 6.4에서 설명
N3485 § 6.5/4 는 [stmt.iter]은 조건에 대해 이것을 말한다. - 끝말]
그러나 6.4에서 보았을 때 나는이 시나리오를 언급하지 않았습니다. 이론적으로 루프는 사실상 영원히 지속될 수 있지만 실제로는 보통 5ms의 실행 시간을 가지며 모든 테스트 실행에서 한 번은 22ms입니다.
변경 (의사) 난수에서 루프 종료 조건을 기반으로하는 것은 잘 정의 된 동작입니까? 그렇지 않은 경우 어떤 행동입니까?
왜 이것이 특별한 경우입니까? 이것은 사용자 입력에 따라 달라지는 루프와 어떻게 다른가? (둘 다 비 결정적입니다.) –
@OliCharlesworth, 좋은 지적, 결코 저에게 일어난 일이 아닙니다. 그러나 그 스펙은 그것이 유효하다고 어디에서 말합니까? 나는 6.4를 다시 읽고, 아마도 나는 명백한 것을 놓치고 있지만 그것을 데리러 가지 않았다. – chris
그러나 왜 표준이 특별히이 문제를 해결해야하는지 잘 모르겠습니다 ... –