D.1.4. Класс std::chrono::steady_clock
Класс std::chrono::steady_clock предоставляет доступ к системным стабильным часам. Текущее время возвращает функция std::chrono::steady_clock::now(). He существует фиксированного соотношения между значениями, возвращаемыми std::chrono::steady_clock::now() и показаниями часов реального времени. Стабильные часы не могут «идти в обратную сторону», поэтому если некое обращение к функции std::chrono::steady_clock::now() происходит-раньше другого обращения к ней же, то второе обращение должно вернуть момент времени, больший или равным первому. Часы ходят с частотой, настолько близкой к постоянной, насколько это возможно.
Определение класса
class steady_clock {
public:
typedef unspecified-integral-type rep;
typedef std::ratio<
unspecified, unspecified> period;
typedef std::chrono::duration<rep, period> duration;
typedef std::chrono::time_point<steady_clock>
time_point;
static const bool is_steady = true;
static time_point now() noexcept;
};
STD::CHRONO::STEADY_CLOCK::REP , TYPEDEF
Псевдоним целочисленного типа, используемого для хранения количества тиков в интервале duration.
Объявление
typedef unspecified-integral-type rep;
STD::CHRONO::STEADY_CLOCK::PERIOD , TYPEDEF
Псевдоним типа для конкретизации шаблонного класса std::ratio, которая определяет наименьшее число секунд (или долей секунды) между различающимися значениями duration или time_point. Псевдоним period определяет точность часов, а не частоту тактов.
Объявление
typedef std::ratio<unspecified, unspecified> period;
STD::CHRONO::STEADY_CLOCK::DURATION , TYPEDEF
Конкретизация шаблонного класса std::chrono::duration, в которой может храниться разность между любыми двумя моментами времени, полученными от системных стабильных часов.
Объявление
typedef std::chrono::duration<
std::chrono::steady_clock::rep,
std::chrono::steady_clock::period> duration;
STD::CHRONO::STEADY_CLOCK::TIME_POINT , TYPEDEF
Конкретизация шаблонного класса std::chrono::time_point, в которой могут храниться моменты времени, полученные от системных стабильных часов.
Объявление
typedef std::chrono::time_point<std::chrono::steady_clock>
time_point;
STD::CHRONO::STEADY_CLOCK::NOW , СТАТИЧЕСКАЯ ФУНКЦИЯ-ЧЛЕН
Получает текущее время от системных стабильных часов.
Объявление
time_point now() noexcept;
Возвращаемое значение
Экземпляр time_point, представляющий текущее время но системным стабильным часам.
Исключения
Возбуждает исключение std::system_error в случае ошибки.
Синхронизация
Если одно обращение к std::chrono::steady_clock::now() происходит-раньше другого, то момент времени time_point, возвращенный при первом обращении, меньше или равен моменту времени time_point, возвращенному при втором обращении.