Класс 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
typedef std::ratio<
typedef std::chrono::duration
typedef std::chrono::time_point
time_point;
static const bool is_steady = true;
static time_point now() noexcept;
};
STD::CHRONO::STEADY_CLOCK::REP
, TYPEDEF
Псевдоним целочисленного типа, используемого для хранения количества тиков в интервале duration
.
typedef
STD::CHRONO::STEADY_CLOCK::PERIOD
, TYPEDEF
Псевдоним типа для конкретизации шаблонного класса std::ratio
, которая определяет наименьшее число секунд (или долей секунды) между различающимися значениями duration
или time_point
. Псевдоним period
определяет
typedef std::ratio<
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
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
, возвращенному при втором обращении.
Класс std::chrono::high_resolution_clock
предоставляет доступ к системным часам максимально высокого разрешения. Как и для всех остальных часов, текущее время можно получить от функции std::chrono::high_resolution_clock::now()
. Имя std::chrono::high_resolution_clock
может быть псевдонимом класса std::chrono::system_clock
или класса std::chrono::steady_clock
, либо отдельным типом.
Хотя тип std::chrono::high_resolution_clock
дает самое высокое разрешение среди всех входящих в библиотеку часов, обращение к функции std::chrono::high_resolution_clock::now()
все же занимает конечное время. Поэтому, пытаясь хронометрировать очень короткие операции, учитывайте накладные расходы на вызов этой функции.
class high_resolution_clock {
public:
typedef unspecified-integral-type rep;
typedef std::ratio<