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

Why does coliru return the same values for chrono::system_clock::now().time_since_epoch()?

本文关键字:since time epoch 返回 now coliru chrono system clock 为什么      更新时间:2023-10-16

在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;
}
输出:

c++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp &&./a.o ut

1433249917642594133

1433249917642674289

在ideone和我的电脑上都能正常工作。

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

Coliru缓存每个代码片段的结果,所以这是预期的行为。

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

<子> (来源:我知道作者。)