Почему coliru возвращает те же значения для chrono::system_clock::now(). Time_since_epoch()?

При тестировании чужого кода на coliru я заметил, что std::chrono::system_clock::now().time_since_epoch() возвращает одинаковые значения при нескольких прогонах. Я проверял следующий код с g ++ и clang ++ на coliru.

#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 возвращает одинаковые значения при каждом запуске?

1 ответ

Решение

Coliru кэширует результаты каждого фрагмента, поэтому это ожидаемое поведение.

Вы можете принудительно выполнить повторный запуск, тривиально изменив исходный файл (скажем, добавив больше пробелов или изменив содержимое комментария).

(Источник: я знаю автора.)

Другие вопросы по тегам