为什么coliru为chrono :: system_clock :: now()返回相同的值.time_since_epoch()?

时间:2015-06-02 13:06:11

标签: c++ c++11 chrono coliru

在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会在每次运行中返回相同的值?

1 个答案:

答案 0 :(得分:1)

Coliru缓存每个片段的结果,因此这是预期的行为。

您可以通过简单地更改源文件来强制重新运行(例如,添加更多空格或更改注释的内容)。

来源:我认识作者。)