<分区>
考虑 main
的主体:
std::srand(std::time(nullptr));
while (std::rand());
令人惊讶的是,无论是在规范中、在 Google 上还是在本网站上,我都找不到任何关于它是否定义明确的信息。至于规范:
N3485 § 6.5/4 [stmt.iter] 对这种情况说:
[ Note: The requirements on conditions in iteration statements are described in 6.4. — end note ]
然而,翻阅 6.4,我没有看到任何与此场景相关的内容。理论上,循环几乎可以永远持续下去,但在实践中,我通常有 5 毫秒的运行时间,所有测试运行中有一次是 22 毫秒。
将循环终止条件基于不断变化的(伪)随机数是否是明确定义的行为?如果不是,属于哪种行为?