Когда std:: Chrono epoch?
std::chrono::time_point::time_since_epoch() возвращает duration, примерно time_point в прошлом. Когда такое time_point? Это зависит от реализации C++ или определяется стандартом c++? Или это де-факто стандарт, чтобы установить эпоху на 1 января 1970 UTC?
1 ответов
это функция как конкретного clock на time_point относится к, и реализация этого clock. Стандарт определяет три различных часов:
system_clocksteady_clockhigh_resolution_clock
и стандарт не определяет эпоху для любого из этих часов.
программисты (вы) также могут создавать свои собственные часы, которые могут указывать или не указывать эпоху.
там де-факто (неофициальный) стандарт std::chrono::system_clock::time_point имеет эпоху, соответствующую Время Unix. Это определяется как продолжительность времени, прошедшего с 00:00: 00 по координированному универсальному времени (UTC), четверг, 1 января 1970 года, не считая високосных секунд.
чистки рядов, вот библиотека даты/времени который использует этот де-факто стандарт.
нет де-факто стандарта для двух других часов, указанных в std. Кроме того,high_resolution_clock is разрешено быть псевдонимом типа для любого system_clock или steady_clock.
на OS X,high_resolution_clock - это псевдоним для типа steady_clock и steady_clock - это количество наносекунд с момента загрузки компьютера (никакого отношения к UTC).