При тестировании чужого кода на 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 возвращает одинаковые значения при каждом запуске?
Coliru кэширует результаты каждого фрагмента, поэтому это ожидаемое поведение.
Вы можете принудительно выполнить повторный запуск, тривиально изменив исходный файл (скажем, добавив больше пробелов или изменив содержимое комментария).
(Источник: Я знаю автора.)