在coliru上测试别人的代码时,我注意到std::chrono::system_clock::now().time_since_epoch()
在多次运行时返回相同的值。我在coliru上使用g ++和clang ++测试了以下代码。
#include <iostream>
#include <chrono>
int main()
{
auto seed = std::chrono::system_clock::now().time_since_epoch().count();
std::cout << seed << "\n";
std::cout << std::chrono::system_clock::now().time_since_epoch().count() << "\n";
return 0;
}
输出:
g ++ -std = c ++ 11 -O2 -Wall -pedantic -pthread main.cpp&amp;&amp; ./a.out
1433249917642594133
1433249917642674289
它可以在ideone上按预期工作,显然在我的计算机上工作。
有没有人知道为什么coliru会在每次运行中返回相同的值?
答案 0 :(得分:1)
Coliru缓存每个片段的结果,因此这是预期的行为。
您可以通过简单地更改源文件来强制重新运行(例如,添加更多空格或更改注释的内容)。
(来源:我认识作者。)