2

在 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 && ./a.out

1433249917642594133

1433249917642674289

它在ideone上按预期工作,显然在我的电脑上工作。

有谁知道为什么 coliru 每次运行都返回相同的值?

4

1 回答 1

1

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

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

来源:我认识作者。)

于 2015-06-02T14:02:35.963 回答